I have started writing code approximately 8 years ago, studying theoretical physics in the university.
It was fun. It was exciting. I have uncovered the whole new world.
I really liked creating "things" (basically some very simple games and interactive physics engines) for myself.
But soon I have realized, that I can create "things" for other people too.
And they will even pay for those things :)
And that's how I've decided to be a programmer.
I often took some time to reflect upon the things I see around and analyze actions and decisions made.
I met a lot of different people and discussed a lot of "metaphysical" facets of programming, engineering, entrepreneurship and management.
It took me 3 years of practice and team collaboration to start feeling a subtle difference between "coders", "software developers" and "software engineers".
Eventually, I have come to the idea that I want to be a great Software Engineer (uppercase intended).
It's obvious for me that I am far far away from that goal. Still, I am focused on being productive, pragmatic and being able to create some real value.
In this series of posts I want to share the knowledge I've got from people around me.
I believe it can help me and you to become a better Engineer, to build Great Things and to promote the joy of our craft.
Note: the materials will be deep and thought provoking. Do not rush through it, give it some time.
This series is based on the talk "Software Engineering 101" I gave to my colleagues at yetu.
You can find the slides on slideshare.
- SE101. Constraints Everywhere
- SE101. Technologies Do Not Matter.
- SE101. Hardest Challenges.
- SE101. Code Is For Humans!
- SE101. Know What You Are Doing.
- SE101. Good Practices.
- SE101. Guerilla Refactoring.
- SE101. Task Estimation.
- SE101. Project Estimation.
- SE101. Productivity.
While I am working on the content of the series, you can enjoy these great materials: