Yegor Bugayenko Profile Banner
Yegor Bugayenko Profile
Yegor Bugayenko

@yegor256

Followers
13,740
Following
48
Media
955
Statuses
8,882

I love programming; co-founder of ; co-author of ; co-creator of ; co-organizer of @iccq_ru .

Joined December 2010
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@yegor256
Yegor Bugayenko
2 years
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.
Tweet media one
35
2
54
@yegor256
Yegor Bugayenko
8 years
Steve Jobs would fire you all. Shame on you, Apple. #MacBookPro
Tweet media one
20
204
397
@yegor256
Yegor Bugayenko
6 years
My new book "Code Ahead" is finally out on sale! #codeahead
11
29
147
@yegor256
Yegor Bugayenko
5 years
This is just beautiful:
Tweet media one
7
56
162
@yegor256
Yegor Bugayenko
7 years
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
4
32
104
@yegor256
Yegor Bugayenko
4 years
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
12
7
79
@yegor256
Yegor Bugayenko
5 years
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
28
5
75
@yegor256
Yegor Bugayenko
3 years
JetBrains just extended my open source license for all their products. Love you, @jetbrains !
0
0
76
@yegor256
Yegor Bugayenko
4 years
My 5th book Junior Objects is published. It is a crash course for junior programmers, on computing, software engineering, and object-oriented paradigm.
7
6
75
@yegor256
Yegor Bugayenko
6 years
A good code is not the one that works, but the one that is easy to read.
17
27
73
@yegor256
Yegor Bugayenko
4 years
An interview question. How fast you can solve this? 1024+512+256+128+64+32+16+8+4+2+1=?
64
10
70
@yegor256
Yegor Bugayenko
1 year
ChatGPT understands Agile pretty well...
Tweet media one
4
11
72
@yegor256
Yegor Bugayenko
5 years
Sberbank programmers, you need to purchase my one-day training about object-oriented programming, urgently!
Tweet media one
2
8
68
@yegor256
Yegor Bugayenko
7 years
2016 is over. 15 countries, 37 conferences, 53 presentations, 10 webinars, 51 blog posts, 2 books. Happy New Year, my friends)
Tweet media one
3
5
65
@yegor256
Yegor Bugayenko
3 years
I'm afraid to tweet. Thanks, @Twitter .
8
5
62
@yegor256
Yegor Bugayenko
7 years
The first and most popular mistake of a code reviewer is the fear of offending an author of the code:
0
13
39
@yegor256
Yegor Bugayenko
5 years
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:
4
13
62
@yegor256
Yegor Bugayenko
2 years
Modern politics: you either agree with me or you are a victim of propaganda.
11
6
57
@yegor256
Yegor Bugayenko
2 years
Elegant Objects, Vol. 3, page 1...
3
0
56
@yegor256
Yegor Bugayenko
7 years
Hey, good news! Elegant Objects vol.2 is on sale from Amazon:
3
21
56
@yegor256
Yegor Bugayenko
3 years
“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
1
9
54
@yegor256
Yegor Bugayenko
6 years
"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."
7
25
50
@yegor256
Yegor Bugayenko
6 years
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
Tweet media one
24
13
54
@yegor256
Yegor Bugayenko
2 years
Object-oriented programming done right :)
Tweet media one
9
4
53
@yegor256
Yegor Bugayenko
3 years
"If you want to master something, teach it." — Richard Feynman
0
9
52
@yegor256
Yegor Bugayenko
6 years
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
9
8
47
@yegor256
Yegor Bugayenko
8 years
"Elegant Objects", my first book about object-oriented programming, is published! Check it out: #oop #java
5
18
48
@yegor256
Yegor Bugayenko
6 years
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
Tweet media one
19
5
47
@yegor256
Yegor Bugayenko
6 years
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
11
50
45
@yegor256
Yegor Bugayenko
4 years
Do you have a rule for naming your object methods? I do have one: all methods are either manipulators or builders. Read on: #elegantobjects
1
7
48
@yegor256
Yegor Bugayenko
4 years
Новое интервью с моим участием (спасибо Лексу за отличные вопросы и профессиональный подход)
2
2
49
@yegor256
Yegor Bugayenko
7 years
This is what you call an uncomfortable question, at @jeeconf yesterday. The full video is here:
1
11
45
@yegor256
Yegor Bugayenko
5 years
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
28
2
44
@yegor256
Yegor Bugayenko
7 years
New post on my blog: "Why I Don't Talk to Google Recruiters" #career
3
32
42
@yegor256
Yegor Bugayenko
6 years
Elegant Objects mood... #elegantobjects
Tweet media one
3
9
43
@yegor256
Yegor Bugayenko
2 years
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…
Tweet media one
3
1
43
@yegor256
Yegor Bugayenko
5 years
If the boss is angry, he is not the boss. #thought
0
12
42
@yegor256
Yegor Bugayenko
2 years
How does this situation differ from what USA did to Iraq 20 years ago? What do you think are the key differences?
75
5
40
@yegor256
Yegor Bugayenko
6 years
Architects are proud of complexity. They think that the more complex the problem they’re working with, the better an engineer they are.
5
19
39
@yegor256
Yegor Bugayenko
5 years
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:
1
10
40
@yegor256
Yegor Bugayenko
5 years
If you don't like what I'm saying it doesn't mean I'm wrong. #thoughts
0
9
40
@yegor256
Yegor Bugayenko
4 years
Eleven OOP patterns, which are anti-patterns:
4
9
37
@yegor256
Yegor Bugayenko
6 years
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
7
14
40
@yegor256
Yegor Bugayenko
5 years
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.
3
11
38
@yegor256
Yegor Bugayenko
6 years
"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
4
12
38
@yegor256
Yegor Bugayenko
5 years
Don't refactor unless the project explicitly asks you to do it. #morning
7
13
37
@yegor256
Yegor Bugayenko
5 years
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?
Tweet media one
8
1
36
@yegor256
Yegor Bugayenko
5 years
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. =
3
15
37
@yegor256
Yegor Bugayenko
2 years
Happy New Year!
2
0
37
@yegor256
Yegor Bugayenko
5 years
Here is my short list of 11 anti-patterns in OOP: Can you name one more, to make it a dozen? #elegantobjects
5
13
36
@yegor256
Yegor Bugayenko
9 years
"No matter how unpleasant this is, let's face the reality: each project is a business, and we are its resources" http://t.co/3lDbG5tDsv
2
39
28
@yegor256
Yegor Bugayenko
9 years
Finally, http://t.co/dUobm4FKdx is starting to pay remote software developers in Bitcoins, through Coinbase #bitcoin @coinbase
2
24
33
@yegor256
Yegor Bugayenko
6 years
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
7
16
36
@yegor256
Yegor Bugayenko
5 years
This is what happens when you don't understand object-oriented programming @privatbankua
Tweet media one
4
8
35
@yegor256
Yegor Bugayenko
6 years
А вот и видео вчерашнего интервью/беседы с @jbaruch на #jokerconf в Санкт-Петербурге: Говорили о карьерном росте, само рекламе, книгах, конференциях, и немного о diversity.
2
14
36
@yegor256
Yegor Bugayenko
6 years
Here is what I think about complexity in software development: "The Better Architect You Are, The Simpler Your Diagrams" #architect
1
9
35
@yegor256
Yegor Bugayenko
8 years
Can you believe what kind of gifts they give to speakers at?! #geekoutee @GeekOutEE
Tweet media one
4
20
35
@yegor256
Yegor Bugayenko
5 years
The best way to punish good software engineer is to make them attend long and boring presentations with wordy slides #angry #mood
3
10
35
@yegor256
Yegor Bugayenko
7 years
"Won't-happen Driven Development" by OpenJDK 8 ()
Tweet media one
3
19
35
@yegor256
Yegor Bugayenko
5 years
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
1
12
31
@yegor256
Yegor Bugayenko
7 years
This is how my next book "Code Ahead" will start:
Tweet media one
1
14
33
@yegor256
Yegor Bugayenko
5 years
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!
5
12
33
@yegor256
Yegor Bugayenko
5 years
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.
2
8
33
@yegor256
Yegor Bugayenko
4 years
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).
6
6
33
@yegor256
Yegor Bugayenko
3 years
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.
4
1
33
@yegor256
Yegor Bugayenko
7 years
My keynote starts in ten minutes at @RigaDevDays I'm scared. #rigadevdays
Tweet media one
3
1
33
@yegor256
Yegor Bugayenko
8 years
Finally, I've met David West, the author of "Object Thinking"! I will interview him tomorrow and publish video
Tweet media one
2
4
32
@yegor256
Yegor Bugayenko
7 years
I've got an email today: "I'm a Java developer; I've been fired five times because I make too many conflicts; I want to work for you guys":)
2
6
32
@yegor256
Yegor Bugayenko
5 years
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
1
12
31
@yegor256
Yegor Bugayenko
6 years
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.
4
15
30
@yegor256
Yegor Bugayenko
3 years
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:
4
7
32
@yegor256
Yegor Bugayenko
4 years
Parser, Printer, Reader, Controller — what do these class names have in common and why all of them are wrong? #elegantobjects
1
6
31
@yegor256
Yegor Bugayenko
5 years
Tweet media one
0
8
30
@yegor256
Yegor Bugayenko
6 years
"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
3
7
28
@yegor256
Yegor Bugayenko
2 years
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)
33
7
31
@yegor256
Yegor Bugayenko
6 years
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
Tweet media one
9
7
28
@yegor256
Yegor Bugayenko
5 years
Let’s hire an expert and tell him what to do! #sarcasm
2
12
31
@yegor256
Yegor Bugayenko
5 years
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
2
7
30
@yegor256
Yegor Bugayenko
6 years
Mocking is a very dangerous technique in unit testing, which in most cases leads to unmaintainable eventually thrown-away tests. #testing #mocking #unittest
0
9
29
@yegor256
Yegor Bugayenko
4 years
They arrived! If you want to buy one directly from me, ping me in Telegram:
Tweet media one
3
1
30
@yegor256
Yegor Bugayenko
5 years
And you still use them? #elegantobjects
Tweet media one
5
9
28
@yegor256
Yegor Bugayenko
5 years
The first thing I check in a new repo, in order to understand its quality of design, is the presence of "utils" directory... #elegantobjects
3
8
30
@yegor256
Yegor Bugayenko
5 years
Well said, isn’t it? #elegantobject book, volume 1, page 133.
Tweet media one
9
9
26
@yegor256
Yegor Bugayenko
2 years
Trying to learn Rust... so far it looks like a killer of C++ and I like it
6
1
29
@yegor256
Yegor Bugayenko
1 year
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:
2
2
29
@yegor256
Yegor Bugayenko
5 years
Do you remember that an empty line inside your method body is a code smell?
5
9
29
@yegor256
Yegor Bugayenko
5 years
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:
4
3
27
@yegor256
Yegor Bugayenko
1 year
What makes a good engineer? I believe, it's this:
Tweet media one
0
3
28