We are hiring! Check this out:
- Office in Moscow
- Java/Python/Rust/Kotlin/Go
- Open source projects
- On-site full-time employment
- Flexible office attendance mode
Text me for more details.
David West, the author of "Object Thinking" reviewed my books today: "Yegor's books show you how to correctly and elegantly implement the object concept in code; while all other books show you how to use code to warp and corrupt the object concept."
#elegantobjects
#oop
I was interviewing one programmer yesterday and asked him, whether he's made any open source products. The answer was: "I've got a child and a wife."
#opensource
I'm thinking about writing a new book. Object-oriented programming for those who see the computer for the first time. Basically, to help students learn OOP the right way, from the beginning. What do you think? And what would be a good title for it?
#elegantobjects
My 5th book Junior Objects is published. It is a crash course for junior programmers, on computing, software engineering, and object-oriented paradigm.
Returning NULL is evil. Always. No exceptions. No excuses. If you return NULL, you are a bad programmer. Period. What do you do instead? Here is one of the options:
“As long as you keep your boss happy, performance really doesn’t matter that much and, by contrast, if you upset them, performance won’t save you” — Jeffrey Pfeffer
"The biggest mistake ever was the invention of debugger-tools, where any developer can manually step through the code to find a bug. If there would be no such thing as a debugger-tool, any developer would be forced writing unit tests for bugfixing."
This is the first draft of the contents of Elegant Objects (Volume 3). What else you would be interested to see there? I need practical use cases, which you are not sure how to implement in a pure object-oriented form. I will try to show how.
#elegantobjects
My experience of working with programmers over the last years tells me that the biggest issue we have in the industry is that programmers simply can't talk.
#sociotech
The code in read is mine, the code in green is coming from someone who obviously knows Ruby better than I. However, I'm asking myself, why do we need to replace good old IF-THEN-ELSE with something that's less readable?
#ruby
Static methods, getters, setters, NULL references, annotations, ORM, MVC, and mutable objects are an absolute evil in OOP. Retweet this and I will pay you $64 (via PayPal).
#elegantobjects
I'm starting to write a book for kids, about OOP and I'm thinking about using JavaScript as the main language. What do you think about this?
#javascript
#elegantobjects
#oop
I was speaking in front of 13-16 y.o. kids a few days ago, in IT school in Kazan (Russia). It was planned to take 45 minutes, but took two hours. It was one of the hardest sessions for me ever. Video is coming…
Junior programmers are proud of the code they write. Professional ones use unit tests and static analyzers. When they become real pro they understand that the code is good only after it was reviewed by someone else, multiple times. Watch this:
After six months of writing in Ruby I came up to a conclusion. The key difference between Java and Ruby is in the community of developers. Java people are smarter.
#java
#ruby
My recommendation to become a better programmer? Never study anything in an academic way, always do something real using the tech stack you want to learn.
"There is no point in giving me binary-tree-traversing questions; I don't know those answers and will never be interested in learning them."
#recruiting
#interview
#career
#jobs
Here is the Table of Contents of my new book for junior programmers (with a focus on object-oriented programming). What did I miss? What other important terms/topics a programmer must know?
It is conceptually incorrect to have any methods starting with "set" or "get" in an object. And it’s not about breaking encapsulation, like many people argue. It is whether you’re thinking like an object or you’re still writing COBOL in Java syntax. =
A new Shift-M
#podcast
episode no.42 with
@venkat_s
A lot of wisdom was shared there, the question is whether you can apply it to yourself or not. You should try, I believe.
Spring Boot framework contains 4100 Java files, 243K LoC and 7055 NULL keywords, which is one NULL per 35 lines of code. Takes Framework has 771 Java files, 154K LoC and 58 NULL keywords, which is one NULL per 2700 lines. See the difference?
#spring
#takes
#elegantobjects
А вот и видео вчерашнего интервью/беседы с
@jbaruch
на
#jokerconf
в Санкт-Петербурге: Говорили о карьерном росте, само рекламе, книгах, конференциях, и немного о diversity.
Sooner or later large software companies will start realizing that the best software developers want to work remotely and want to be paid differently than traditional full-timers.
#morning
Debugging is needed when our code is procedural and algorithmic—when the code is all about how the goal should be achieved instead of what the goal is. There is no place for debugging in clean object-oriented programming. Only unit testing!
Software engineering must be your family, your passion, your friend, and your life. Without that attitude, you will always be a slave to those who think like that. You must not work; you must have fun in front of the laptop.
I'm looking for a smart and brave software engineer (Java or Ruby) to join my team in Moscow (full-time, above-the-market salary, Fortune-100 company) and be the architect of the most interesting and experimental projects (all open source).
I just did a simple grep through Linux kernel's code and found 177309 GOTOs, 193650 BREAKs, and 28680 CONTINUEs. The total count of lines of code is 15.2M. Just saying.
Writing automated tests is not an option, but skill only professional programmers posses. If you don't write tests, you are just not professional enough.
#testing
A modern software project is much more a social activity than code writing. Knowing how to interact with the team and deal with information is much more important than knowing how to use design patterns.
I wrote this four years ago when I had zero experience of working in a large organization. Now I do have such experience and reading this blog post again only confirms that I was right four years ago. Read it:
"We don't have time to write unit tests" or "We don't have the budget for unit testing" are complaints I hear very often. They never make sense to me:
#testing
I think I owe you my view about the current Ukraine situation. I'm sorry I didn't clearly express it earlier and you had to guess. Here it is. (continued)
I sent one of my articles to InfoQ and received the following response. It seems that InfoQ readers are perfectly protected from any ideas that "go against well-known good practices."
#shame
How to make programmers be happy with smaller salaries? Brainwash them regularly by communicating how great your company is, how big its mission is, and how important their contribution is.
#sarcasm
Mocking is a very dangerous technique in unit testing, which in most cases leads to unmaintainable eventually thrown-away tests.
#testing
#mocking
#unittest
I just released a small Rust library that implements a hash map but without hashing and without the use of heap. Thanks to this, it is five times (!) faster than standard HashMap. Check it out:
Code Ahead is my
#book
about software engineering. It may help you look at the dynamics of team work in a software project, from a different perspective. Buy it: