Getting started can be the hardest part of any major project. Most of the time, if you think about the depth and breadth of a major project, it seems so big that you’ll never get done. At the very least, the end date won’t change much if you wait until tomorrow, so why start now? Eventually, and especially if you are a software engineer, you realize that every problem is just a series of small problems, one after the other, so every day you work on it is one less day’s worth of small problems that you’ll have to deal with.
Like most professions, there are two big things that make you a respected software engineer: skills and experience. First, we’ll discuss acquiring skills. Two of the primary ways people learn to code are by going to a school—maybe not actually physically moving as many take online classes—and teaching yourself using books, man pages, the Internet, etc.
In this industry, it’s really good to do both. Learning in school provides you with perspectives you are unlikely to receive from yourself. Inventing things alone feels magical, but sometimes its frustrating to realize that a class could’ve shown you a way that’s 1,000x better, faster, and more elegant. Learning from what others already know can give you those shortcuts.
Independent projects show self-motivation and drive. In this industry the constant is change; demonstrating that you love it enough to update your skills is a great way to differentiate yourself. Also, in school your long projects typically take weeks to a semester at the longest. Independently, you might be involved in a longer-term project that requires you to maintain code in a way that rarely happens for school projects.
Next you need to get some experience. This can sometimes feel like a chicken vs. egg type problem: no one wants to hire me because I don’t have experience, and I can’t get experience without getting hired. This is a challenge in every industry, and a plus here is that there are lots of jobs that cover all kinds of things. Keep looking, check all of the available jobs, and you’ll find something that is a good match for the amount of skills you have. Much of software can’t be taught in schools. Having worked on teams, participated in a style of development, on a particular kind of operating system, or any other little thing can be what gets you your next interview.
There are a million facets to software engineering, but it is a beautiful career that can relate to almost anything. You can work in health care, with the environment, hard science, soft science, games, doodling, cat videos, non-profits, charitable causes, security, or really any field while working in software and making a good career for yourself. So get started, develop a passion for it, and keep at it. You’ll be knee-deep before you know it.