I’m a big fan of our industry’s openness to people from all backgrounds. As the StackOverflow developer survey highlights, some 40% of all developers don’t have a formal CS or even technical background. There is a bias towards web development in that survey, but, even in the larger population of developers, some amount of this fact is likely to hold true.
Given this, and the relatively high salaries one can get as an entry level developer, in Romania, it’s unsurprising many people in technical universities start working for tech companies sometime in their 2nd or 3rd years. If a degree isn’t worth that much, why fret about it? Why not earn a little on the side doing something you like? Why do school at all?
However, as I hope to make clear in this article, nothing good can come out of such an arrangement. You shouldn’t try to juggle both a part-time/full-time job and your studies, and you definitely shouldn’t quit school. Instead you should focus 100% on the studies and use your university years wisely.
But how did you come in possession of such sage wisdom, Horia, you might ask? As always with these things, through doing and getting burned. I worked from my 2nd year of university, through to my 4th year. I finally smarted up towards the end of my 4th year, and joined a masters program and was focused 100% on it. I had to learn a lot of the stuff I should had learned in my undergraduate years, atop all the new fancy stuff from the master. But it was a really good experience, and the knowledge I gathered there continues to pay dividends. On the other hand, one of the jobs I had during that time, I don’t even mention on my CV. The other is usually not counted by employers as “work experience”. The experiences themselves weren’t that great either, as far as learning goes. One of the places didn’t use source control, for example.
As with all advice, this one isn’t universal. Sometimes, you have to work. It’s hard to focus on studying when there’s no food on the table. And an IT job sure beats the alternatives. Othertimes, you’re just that good and you have Google and Facebook fighting over you. No point in wasting time on this blog. However, for the rest of you, this might be useful.
Here’s some of the arguments I’ve used and heard people use when getting a job in university.
Not learning the right stuff in school. A perenial complaint for Romanian universities is that they focus too much on theory and other stuff “you don’t need in real life” . The non-obvious implication being that real life == work life. Which is sad. And it also misses the point of higher education. The stuff you learn in university is supposed to last your whole career, and is supposed to be a foundation upon which any other thing you learn is based. Any actual technology you learn should have paid its dues. We’re talking about Unix, the Internet, the world wide web etc. The latest JS framework or the minimal set of skills required to get a job? Not so much.
The work experience is gonna be good. But is it though? It’s gonna be different, for sure. Much more hands on. You might even get to work with some newer tech. But after one or three months, you will basically learn all there’s to be learned about the tech and processes of a company. You’ll be left with work. Lots of work. The experience itself isn’t going to count that much. First of all, it’s just 1-3 years in a possibly 50 years career. Second, later employers know your attention is not 100% on the job, you get lower responsability etc, so they know not to put too much weight on it. Third, there is a dearth of candidates for roles. You’re not missing out by not being employed, in a way your colleagues from an economic or social sciences university might be.
But the money is good, no? It might be good compared to what your peers from non-technical universities are earning, or various types of low skilled laborers, or even your parents. But nobody’s gonna throw mad money at a 20ish university student at their first or second job. You won’t really have that much leverage to use in negotiations.
All my friends are doing it. (Even the ones whose technicall skills are not as good as mine at $computer_stuff). I’m not going to insult you with a “if all your friends jumped of a building, would you follow them”? argument. There is some wisdom in following the crowd. But, like the next section will hopefully highlight, the advantages of staying in school 100% outweigh the disadvantages.
You’re an adult with virtually no responsabilities. It’s very unlikely that this situation will occur again in your life. Ever. Cherish it. Party, socialize, travel as the budget permits. Do some sowing for the seeds of your new career, as well.
It’s the last time you have loads of time to learn theory/the hard stuff. It’s not easy to work through dense books such as Introduction To Algorithms or SICP or $random_calculus_book. You need loads of time for these things and university is the perfect place to do it. Loads of the exciting and cool stuff happening in techonology today, such as Deep Learning, Bitcoin, NoSQL databases, VR etc. require a fair amount of math to understand. While what you learn in a typical undergraduate degree won’t land you that sweet job at DeepMind, it will at least allow you to understand and apply these things. There’s also a lot of more down to earth things which you’ll very likely need. My favorite is A/B testing. Almost every developer needs to know it, but the math and interpretation can get quite tricky. Not something you want to master in a couple of weeks before the new signup page is ready.
A diploma is a diploma. Even if it’s from the 701+ club. There’s simply certain employers for whom not having a diploma is going to count as a big red flag. Many of the “prestigious” tech companies fall in this camp, when they do lower-level recruiting. Many large companies in France, Germany, the nordic countries etc. are also very fond to such thing. Finally, on a more prosaic note, in Romania, as a diploma-holding IT worker you don’t pay the 16% income tax everybody else has to pay. That’s leaving a lot of money on the table, especially for more senior positions. You’ll also not be eligible for directorship positions in private or state companies, not be eligible to start PFAs etc.
It’s free. The list of countries which offer free college education is quite short. Romania is in really good company here, with the likes of Norway, Germany, France, Sweeden, Finland etc. There are also no strings attached. No staying in the country for X years, no contributing back to society in any way, in fact.
The competition is doing it. Students in other western countries, India, China, Japan etc. generally don’t work during their studies. They might TA, do light administrative work, or part time work in seasonal industries etc., but nothing as intense as holding a tech job. And in the long run, they might be the competition. Whether directly, as in a globally distributed workforce. Or more indirectly, as in Romania not being able to keep its IT industry up to snuff with the global requirements. What’s hot right now in Sillicon Valley might just be what the outsourcing industry will be busy maintaining and improving in 10 years time.
Work is work. It’s not all hands on experience, mentorship from senior colleagues and personal growth. It’s also boring meetings, deadlines, bad colleagues, dependence on coffee, no more coffee in the building, commutes through this or this. You might end up stuck on a legacy project, where you won’t learn anything useful, or worse, you’ll learn bad habits which are hard to shake off later. Some shops eschew basic things like source control, let alone TDD, microservices or whatever the hot new thing everybody needs to know. Finally, you’ll be at the bottom of the totem pole, in whatever organization you’re part of. Not fun.
If you do want to get the work experience, your best bet is to be smart about it. Here are a couple of options.
Work part time. This is not that great of an option, because it tends to slip into full-time work. There are some companies which respect this though.
Work over the summer break. Either do an internship (preferred) or just work as a regular employee. From what I remember, it was actually mandatory to do some pracatice in later university years, so this ties in well.
Freelance. There’s loads of small projects one can take up, either alone or with some friends. You need more social skills and selling knowledge than with a regular job, but it’s actually quite good experience.
Do a startup. Why not? No better time from a lack-of-responsabilities point of view. And the threshold to entry in the IT field is quite low. You’ll definitely learn a lot, especially if you actually manage to sell something.
Participate in Google summer of code (or equivalent). You get to spend the summer working on an open-source project and Google is paying the bill. What’s not to like? The renumeration is quite decent for 2-3 months of work. As student your expenses are relatively low, so you can definitely spread that money for the rest of the year.
Work on an open source project. If it’s just the coding experience that you’re after, then working on OSS projects is a good way to get it. Some not-so-popular, but still critical, pieces of software even have bounties attached to fixing issues.
Hopefully this helps you put in context the choices you have. It’s not always easy, especially in the trenches, but focusing on this will definitely pay off in the long term.
1 There’s a grain of salt to that accusation though. The curricula is outdated at many universities. Some courses which look nice on paper, end up being shitty in practice, because of bad professors or bad working conditions.
2 This will probably not go on forever. But it will for the time you’re in university and the first few years of the career. Even after that, it’s likely going to be a gradual reactivation of the tax.