On Becoming a Developer
September 27, 2016
Being a professional programmer for a decade now I’ve accumulated LOTS of obscure bits of information. So it’s completely understandable that when I teach (especially people who are new to programming) students sometimes get a wrong impression that I possess some arcane knowledge that must have been difficult to get. Nothing further from the truth, it’s just a side-effect of me banging my head against computers for a long time. Also, when I was starting out, everything was so much easier…
When I was a kid, I never wanted to be a programmer. I was the kid who knew (and exploited!) the obscure rules of table games they played. And the smartass who always tried to twist your words. It was obvious I was going to be a lawyer. However, long story short, by the time I got to the point when I was about to choose what university degree to pursue, I didn’t have any inclination to study law. I wanted to learn languages (real languages, not the programming ones).
So, I applied to an ethnolinguistic course and, just as a backup, I also followed the example of the majority of my high school class and applied for a computer science programme. Turns out I got into both and by a weird twist of fate (obviously, there was a girl I liked in the same course) I ended up studying CS.
I then spent 5 years writing really unsophisticated “software”. Some of the assignments were quite interesting, but even the most hated nightmarish exercise of estimating a project in Enterprise Rose project management package was nowhere near the level of getting your first React + webpack + Rails + Asset Pipeline + Turbolinks… project off the ground.
Then I went to my first job. I got it, because in the coding example I sent I attached a test file. It was really basic, nowadays you can find more sophisticated examples in the Rails Guide. However, NOBODY was testing their code at the time, so I stood out. Obviously, I ended on a “legacy” project and didn’t write a single line of tests in the following 10 months.
Of course, I struggled with version control, everybody did. The whole world (that I knew of) used Subversion and it can get pretty complicated when you try to merge branches. So, nobody ever created them. You just solved your conflicts when you pushed into “master”. Small commits, good messages? None of that stuff - you just pushed whatever you had at 5pm to the server and went home.
I could elaborate more on that subject, but I think it’s enough to get my point
- it was so much easier to be a “junior” back then. Hell, I even wasn’t called a Junior at the time! Nowadays we want people to use git, write tests, deploy to heroku, merge conflicts, write clean code - all on their first day at work.
I’m not sure if I’d cut it if I started today…
Written by Wojciech Ogrodowczyk who takes photos, climbs mountains, and runs Brains & Beards to help companies deliver better mobile applications faster.