Get Information Hungry or Get Out!
Tags: developers, juniordevs
Published: 2019-06-02 14:04:48

The most important thing I can tell you as an aspiring software engineer is to be hungry for information. If you aren't hungry, get out now while you still can.

This single trait is the most important thing for your career. It is more important than what school you go to, or even if you go to school at all. Your teachers *will not* teach you what you need to know to make it in the real world as a developer.

Don't get me wrong - school is great. You will learn a lot of theory, big O notation, sorting algorithms, and the like. What they won't teach you is that your future company almost certainly doesn't care about big O notation; all they care about is the value you bring to their company.

Writing code that works is not the same as bringing value to the company. You must be able to write maintainable code, work on a team of developers, deliver features quickly, and adapt to the environment with little friction. It's very unlikely you will learn these skills at school, so if you don't acquire them on your own there is no reason for them to choose you over the next fresh-out-of-school developer.

Being information hungry is having an inner drive to learn on your own. This means outside of school and outside of work you spend your own time learning about your craft simply because you enjoy it.

You've certainly heard the old adage "do what you enjoy and you won't work a day in your life". That's a load of crap - even if you enjoy what you do it is still work; but what is true is that if you *don't* do what you enjoy you will hate going to work everyday and nobody wants to be in that position.

As a software developer the landscape of your profession is changing by the minute. This is more true now than when I wrote my first Turbo Pascal program in the 1980s. The consequence of this for junior developers straight out of college is that your text books and the skill sets of your professors are not likely keeping up with the world around you. Even if your professors are trying to keep in lockstep with the development world, you're getting a single slice of one person's idea and taking a full semester to learn it.

By contrast, if you consistently spend time in self-study you will find that you can learn the same amount of information in a week or two, you can constantly stay up-to-date on the newest best practices, and you can quickly pivot to an entirely new language, framework, or architectural style. If you spend time contributing to open source projects, you will learn many skills like working with other developers, writing maintainable code, thinking about how consumers will use software, and more.

It's also worth noting that this doesn't apply only to those fresh out of college or currently in college. I have personal experience with developers who were five years out of school, on their third company, and still didn't spend any time in self-study. Put quite simply, these are poor developers and they won't last at a company that expects them to be anything but a drone.

This shouldn't be a surprise to anyone. I can't go to art class in high school, paint a picture of a rose, and expect to be a renowned artist any more than I can just learn a small slice of development in one or two languages from professors, write a calculator app that does math correctly, and expect to be a respected developer when I enter the workforce.

You must perfect your craft through exercise. Absorb information like a sponge and practice, practice, practice. Build your portfolio by writing software just as an artist will paint hundreds or thousands of paintings. Like a painter learns which techniques work and which cause headaches down the line, you will develop a nose for "code smell" and you'll be able to pick out "bad" functions without having to calculate the big O. Learn from real professionals in your field by contributing to their open source projects and accepting their constructive criticism.

What makes me an expert? I'm not an expert, I'm a professional in the field with over 30 years experience in development, and *no degree*. But I'd bet my GitHub profile and my self-acquired skill set against your degree any day of the week.