Dr Milan Milanoviฤ‡
Dr Milan Milanoviฤ‡

@milan_milanovic

2 Tweets 2 reads Jan 10, 2024
๐—›๐—ผ๐˜„ ๐—ง๐—ผ ๐—•๐—ฒ๐—ฐ๐—ผ๐—บ๐—ฒ ๐—” ๐—š๐—ฟ๐—ฒ๐—ฎ๐˜ ๐—ฆ๐—ผ๐—ณ๐˜๐˜„๐—ฎ๐—ฟ๐—ฒ ๐—˜๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ?
As we all know, being a software engineer is a challenging thing. You need to see a lot and constantly improve yourself. But, during my career, I found what differ excellent software engineers, and here are recommendations on how to become one:
๐Ÿญ. ๐— ๐—ฎ๐˜€๐˜๐—ฒ๐—ฟ ๐—ผ๐—ป๐—ฒ ๐—ฝ๐—ฟ๐—ผ๐—ด๐—ฟ๐—ฎ๐—บ๐—บ๐—ถ๐—ป๐—ด ๐—น๐—ฎ๐—ป๐—ด๐˜‚๐—ฎ๐—ด๐—ฒ ๐—ถ๐—ป ๐—ฑ๐—ฒ๐—ฝ๐˜๐—ต
Take one programming language and go in-depth with it. Learn everything you can and be a master of it. Some good languages you can select today are Python, Java, C#, and Rust, ...
๐Ÿฎ. ๐—Ÿ๐—ฒ๐—ฎ๐—ฟ๐—ป ๐—ฆ๐—ผ๐—ณ๐˜๐˜„๐—ฎ๐—ฟ๐—ฒ ๐—˜๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ๐—ถ๐—ป๐—ด ๐—ฐ๐—ผ๐—ป๐—ฐ๐—ฒ๐—ฝ๐˜๐˜€
When you master a programming language, its syntax, semantics, and constructs, the next thing is to learn different software engineering concepts, such as:
๐Ÿ”น Software architecture
๐Ÿ”น Software design
๐Ÿ”น Design patterns
๐Ÿ”น Clean code
๐Ÿ”น SOLID, DRY, KISS, and YAGNI principles
๐Ÿฏ. ๐—Ÿ๐—ฒ๐—ฎ๐—ฟ๐—ป ๐˜๐—ต๐—ฒ ๐—ฐ๐—ผ๐—บ๐—ฝ๐—น๐—ฒ๐˜๐—ฒ ๐—ฆ๐——๐—Ÿ๐—– ๐—ฝ๐—ฟ๐—ผ๐—ฐ๐—ฒ๐˜€๐˜€
Try to understand the complete software development process, from requirements to deployment. Learn about Agile methodologies, DevOps, and Quality assurance.
And try to work on different projects; the more projects you work on, the more you will learn new stuff and grow.
๐Ÿฐ. ๐—•๐—ฒ ๐—ฎ ๐—ฝ๐—ฟ๐—ผ๐—ฑ๐˜‚๐—ฐ๐˜-๐—บ๐—ถ๐—ป๐—ฑ๐—ฒ๐—ฑ ๐—ฒ๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ
When working on your project, don't settle just with specs; jump to implement it. Think about other ideas and approach your product manager with them. Try to understand the complete system, but also how business works. Be an end-to-end product feature owner.
๐Ÿฑ. ๐—œ๐—บ๐—ฝ๐—ฟ๐—ผ๐˜ƒ๐—ฒ ๐˜†๐—ผ๐˜‚๐—ฟ ๐—ฐ๐—ผ๐—บ๐—บ๐˜‚๐—ป๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—ฎ๐—ป๐—ฑ ๐˜€๐—ผ๐—ณ๐˜-๐˜€๐—ธ๐—ถ๐—น๐—น๐˜€
Be respectful of others, communicate clearly, and be humble. Being kind has no financial cost, but its effects are immeasurable.
Try pair/mob programming. Talk with people outside engineering,ย grab a coffee or lunch, or do a hallway chat.
๐Ÿฒ. ๐—Ÿ๐—ฒ๐—ฎ๐—ฟ๐—ป ๐—ถ๐—ป๐˜๐—ฒ๐—ป๐˜๐—ถ๐—ผ๐—ป๐—ฎ๐—น๐—น๐˜†
We need to learn, but the trick is when and how. Don't just learn things because this could be more efficient. We need to know intentionally, just before we need it, and this will make the biggest impact.
๐Ÿณ. ๐—ช๐—ผ๐—ฟ๐—ธ ๐˜„๐—ถ๐˜๐—ต ๐—บ๐—ฒ๐—ป๐˜๐—ผ๐—ฟ๐˜€
The fastest way to progress in your career is to find a mentor. He can help you find your gaps and show you some new opportunities. A mentor can be found inside an organization or outside (check specialized services).
๐Ÿด. ๐—จ๐˜€๐—ฒ ๐—ด๐—ผ๐—ผ๐—ฑ ๐—ฒ๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ๐—ถ๐—ป๐—ด ๐—ฝ๐—ฟ๐—ฎ๐—ฐ๐˜๐—ถ๐—ฐ๐—ฒ๐˜€
Learn and follow good practices, such as:
๐Ÿ”น Using version control
๐Ÿ”น Write your tests correctly (check the test pyramid)
๐Ÿ”น Learn how to refactor
๐Ÿ”น Learn TDD
๐Ÿ”น Code reviews
๐Ÿ”น DevOps mindset
Also, learn your IDE and all the essential shortcuts you need. Debugger too.
#softwareengineering #softwaredeveloper #programming #career

Loading suggestions...