Starting from the bottom
Lately, it seems a lot of people are reaching out to me asking the same question: “I have zero experience, but I want to be a programmer. Where can I go to get started?”. It can be frustrating and overwhelming trying to learn software engineering skills, but it is absolutely worth everything you put into it. As far as statistics go, “Software Engineer” is the highest paid position for new students graduating college right now. There are also the benefits of working from home, setting your own schedule, and more. On top of that, there is an abundant need for new developers currently in the market.
So maybe you find yourself in need of a career change, looking for something new, or wanting to make programming your career. My goal in this article is to show what steps I have taken over the years, what has helped others, and what business owners are looking for in interns and junior developers.
Step 1: What kind of software developer do you want to be?
Identifying what kind of work you want to do is going to define how you approach this guide and is the most important step of becoming a software engineer. All software engineering boils down to are these simple categories:
|UI / UX (Designer)||Designs the part of systems that users interact with. Specializes in user-friendliness and polished look.||$|
|Front-End Developer||Develops the part of the systems that users interact with. Sometimes this position entails design as well.||$$$|
|Server-Side Developer||Develops the part of the systems that handle business logic, security, and interactions with a database.||$$|
|Database Administrator||Architects, develops and maintains databases and server infrastructure. Typically handles data integration as well.||$$$|
|Mobile Developer||Develops applications to run on iOS, Android, and other mobile OS.||$$$|
|Full-Stack Developer||Jack of all trades that can excel at all the above positions to handle any project from start to finish.||$$$$$|
Do you have a knack for design? Are you artsy? Then you might want to start as a UI/UX engineer and move into front-end development. Not so creative, but you can process intense logic and structure? Start as a Server-Side developer or Database Administrator. Keep in mind that you are not limited to any one or two of these positions. In fact, the more you know and closer you get to being a Full-Stack Developer, the more you will be able to do on your own, and the more companies or clients will be willing to pay you for doing so.
Step 2: Join the community
I cannot emphasize how important being a part of a developer community is. This is how you know what to learn, what the best practices are, and who is teaching them.
Todd Moto – Angular GDE & Owner of Ultimate Angular
Max Lynch – CEO of Ionic
Uri Goldshtein- Meteor Developer
John Papa – Developer Advocate at Microsoft
Dan Abramov – React Developer at Facebook
These are just a few of my favorites, but you get the point. If you want to be a good developer, learn from good developers. Be concerned about what they are concerned about. Check your feed regularly.
There is one more social platform that you must be on. Dare I say it… LinkedIn. Yes, Linkedin may not be the best social platform out there, but one thing is true: It is loaded to the brim with recruiters that are constantly seeking new talent for their customers. Connect with these people, communicate with them, and they will try to match you up with a company that’s looking exactly for you (that’s their job).
Now that you are a part of the community, and the channels to gain the most current information are open, we can start focusing on skills.
Step 3: Get to know your tools
- IDE (Text Editor)
We’re not ready to jump right into code just yet. First, you need to download, install, and get a little more comfortable with your tools. You can start googling around what the most popular IDEs (Integrated Development Environment) are for your target position/programming languages. IDE is a fancy term for the text editor you are going to be writing code in. My personal favorite IDE, that covers most programming languages well is VS Code. It’s created by Microsoft, runs on every operating system, and is very customizable.
Source control is basically a single repository on a server somewhere where your code sits. It allows multiple people to work on the same code files- without getting in each other’s way. Source control is not something that you will need right away to get started, but EVERY company uses it. There are several different programs for source control, but Git is the most popular, and a must-have skill to be listed on your resume. Download it, watch a video on YouTube on how to use it, and start figuring it out.
Step 4: Start Coding
This is it. The moment you have been waiting for. It’s time to actually write some code.
Before you really dive deep into making your first application (whether it be mobile, a website, etc.) you need to understand the basics. For this step, I recommend free online interactive courses to get you started. Code Academy is one of my favorite of such sites. It is free to get started and has plenty of awesome beginner courses in relevant technologies. Of course, there are always actual college courses you can take. I don’t necessarily recommend attending college, as I believe they don’t teach the most up-to-date practices, and it takes years and tremendous amounts of money to finish your curriculum and earn a degree. I have known several successful software engineers, in addition to myself, who only have a high school degree.
Your First Project
Once you feel confident enough in your basic skills, it is time to pick a personal project. Think of something that is of interest to you, that also will force you to learn a skill that will be beneficial in the real world. I emphasize the “Of Interest To You” part. If you are not interested in your personal project, you will get bored quickly and leave it unfinished. So, let’s say you want to build a mobile app and learn some great real-world skills as well. Check out Ionic Framework. Building an app with Ionic will force you to learn its underlying framework, Angular. Set requirements for yourself. For example: “My app needs to take a picture, and save it in a database. I’ll also want a screen to display those images later.” Then, do it! Find examples online of other developers that have done a similar project. Watch tutorials on YouTube. Get your project working, and don’t give up. Having these small, personal projects ready to show on an interview is huge. It shows your potential employer that you can get it done. You may not know the ins and outs of the technology, or how exactly it works, but you were able to figure it out and get it working. Having a few of these projects ready to show can sometimes be better than passing the technical interview.
Step 5: Rinse and Repeat
The steps outlined in the article do not go away after you pass your first interview and land your first job as a software engineer. Technology is constantly changing and your skills will need to as well. Perfect these steps. Stay humble and learn how to teach yourself new things quickly and effectively, and you will have success as a programmer.
Note what Steve DiFranco, CEO of Alt Media Studios, and a long time friend of mine has to say on this matter:
“In general, as a business owner, I’m always looking to hire people who are hard workers and eager to learn. In the past, I’ve seen younger developers come to me with a major overestimation of their own capabilities. That attitude leads to problems down the road because, to put it frankly, these Developers just aren’t as good as they think they are. So for us, it’s more than the skills that someone brings to the table; it’s their General attitude toward work and an eagerness to learn proper techniques.
If I am looking for skills I do want to see practical applications of those skills in some format. For example, a recent hire was able to demonstrate a system he built which contained features that allowed users to log into an account management portal and also pay and register for certain things. The system wasn’t anything glamorous but it worked and I was able to see his code was neatly done. But beyond that, this particular developer was successful because he showed a good attitude toward wanting to learn and improve.
My advice to any individual who wants to become a developer is to stay humble.”
Now we’re here.
So in conclusion, you have figured out what kind of developer you want to be. You joined the online community and began learning from the best in the industry. You found the tools required to do your job and familiarized yourself with them. You started learning your new skills and honed them with personal projects. You are now ready for your first interview. Enjoy your new career as a software engineer.
Looking for a place to apply? I’ve personally known Steve at Alt Media Studios to bring on new developers and coach them into their new career. Steve is always looking for fresh talent.