Congratulations on finishing Becoming a Software Developer! Now you’re a beginner software developer – new, but a developer nonetheless. Say it out loud: I am a software developer! This is just the beginning of your software development journey. Hopefully, this book whetted your appetite for coding. This is just a single book, but refer to appendix C for the further reading recommendations. I also recommend that you have a GitHub profile if you didn’t make one already. Start learning a programming language in-depth, now that you have much more background knowledge on it.
Or maybe you’ve gotten to this point and thought “software development really isn’t for me,” and that’s fine too. It helps to look a little bit into a field before deciding whether you want to get more into it or not. I’ve always found it to be a little bit silly that people are expected to quickly figure out what they want to do with their lives. It can take some time and exploration of things that you might not get into.
But if you are still keen on software development, then I’m glad this book could help you get more into it. But there’s still much for you to do. I didn’t mean to inundate you with topics, but that’s just the nature of the beast. There’s a lot to software development. If it was simple, it wouldn’t be high-paying!
Academia vs. the real world
Academia isn’t the real world. Success in academia is getting a lot of research papers published. Computer scientists in academia are often more focused on math, research, or teaching than people who leave academia and get into the real world. CS professors will teach you so much about theory and not enough about real-world stuff. This book hopefully taught you more about some real-world things.
If you’re in college, or about to go to college, just know that things will be very different in an internship or work setting. A lot of your learning will happen on the job. There’s so much in the workplace that you wouldn’t have learned at all about in computer science classes, and that’s okay, as long as you’re willing to continue to learn even when you get a job as a developer, or even if you decide to get into a different field, like IT or security.
It’s good to think about the differences between academia and reality before you graduate or finish up with your self-studying. One thing you can do ahead of time is look up job listings in your area. See the differences between what you’re learning and what is desired in candidates. Look up job titles on indeed.com, like “junior software developer” or something like that. Try to make up the difference – even if it’s different from what I recommended. Maybe you shouldn’t learn Java or Python. Maybe you should learn something like PHP and MySQL, or perhaps you live in an area with lots of C++ jobs. Maybe you’re in an area where there’s a big mobile app company, and you should learn Kotlin and Swift instead so you can make native mobile apps. Maybe you want to go down the route of the full stack web developer. It’s important to figure out what opportunities are out there. It all depends on where you live and when you study. Things can change after I release this book. By the time you’re reading it, some other programming language or subfield of software development might have become more popular. But don’t leave it to chance. Make deliberate decisions related to learning and the development of your career skills before you have to apply. Prepare for the real world even when you’re still in academia.
Also, although indeed.com is good for finding job listings, glassdoor.com is a good way to look up reviews about a company to see if it’s a good fit for you.
Networking (the people kind, not the computer kind)
If you’re having a hard time finding opportunities, try networking with people. LinkedIn, Meetup, Eventbrite, Facebook, whatever. Just do something. You have to meet new people. The more people you network with, the more chances you’ll get at getting your foot in the door. Put yourself out there. The more you do it, the better you get at it. You have to be your own biggest advocate.
Many software developers burn out at some point, even if it’s only temporarily. You might enjoy programming at first, but eventually, it can seem tiresome. However, there are things you can do to avoid burnout. It’s easier said than done, but nobody wants to become a languid cubicle drone, or even worse, quit the field entirely because you can’t handle it. You can’t stay bright-eyed and bushy-tailed forever. There will be a kind of honeymoon phase during your entry into the industry, but even after that, it’s still possible to do things to reduce the risk of burning out.
It’s all too easy to overcommit yourself, especially if you’re a software developer (or are working towards becoming one). Working long hours, overtime, learning things after you get back from work, night classes, relationships, family matters, networking, volunteering, extracurricular organizations, and so on. You are doing yourself a disservice if you do too much all at once. Downtime is important for avoiding burnout. If your day-to-day life is too much for you, you won’t succeed. Tone it down so that you can manage it.
I’ve made the mistake of overcommitting myself — too many classes, in-depth studying, work, and self-directed learning as well as personal programming projects. In the past, I’d sign up for many things all at once, then eventually realize that I’d need to drop a lot of it because it was too much for me. As much as this book encourages you to do more, sometimes you need a lazy weekend to recharge.
You can convince yourself that you need to do so much because everyone else does, or because other applicants to jobs you want might be putting in more effort than you, but you need to know your own limits and do what’s feasible for you personally. Try not to compare yourself to other people, and do what seems right for your abilities.
I’ve found that work and school can be tiresome even if you’re interested in what you’re doing, simply because you are forced to do it. By contrast, when you’re learning something for fun, it seems easier, especially because there are no assignments or deadlines. But the problem with that is you can spend years spinning your wheels and not geting very far. There’s still value in going to college, in addition to teaching yourself things. But not everything will be equally difficult.
If you’re not in college, and instead learning things on your own, you have to be very self-driven to succeed. It’s possible, but not everyone can do it. Whereas a software development career or college class workload can lead to burnout, sometimes self-learning can trickle out gradually, or never really get off the ground to begin with. But all I can say about that is to readjust your workload so it’s easier.
One problem with burnout is that people sometimes one-dimensionally assess their career. Would you rather have a high pay, high-stress job, or an average pay, low-stress one? Jobs are more than just salaries and benefits. One way to avoid burnout in the workplace is to look for a different job. Easier said than done though, but it can pay off in the long run. But then again, some jobs are the worst of both worlds: high stress and low pay. But hopefully you’ll be able to find something that isn’t like that.
Many people claim that switching companies every 2-2.5 years is good for maximizing your salary, but consider this: are you happy with your current job? Can you do it every single day for years and years? If so, it might not be worth switching after all. A little extra disposable income isn’t always worth the risk of burnout. Every time you change jobs, there’s a risk that it might even be worse than your current job.
Some people’s modus operandi is just to make as much money as possible. If that’s what you’re into, go for it. But for many people, such as myself, managing stress and having a more enjoyable job are more important.
Don’t let anyone discourage you
If you tell people that you’re learning software development, it’s possible that some people might try to put you down. They might claim that you can’t do it, or that it’s unrealistic. Don’t listen to these kinds of people. If someone doesn’t want you to succeed, their opinion of you doesn’t matter. The only voices that matter in your life are supportive ones.
When you’re a beginner software developer, your code won’t be perfect. But if someone shames you for having imperfect code, don’t listen to them. Nobody starts writing perfect code. Even seasoned veterans with decades of experience make mistakes. Multi-billion-dollar tech companies with thousands of employees still have mistakes in their code too, which is why software updates are a thing (updates fix broken code).
I’ve dealt with people who are quick to pass judgment on less experienced coders, but this kind of attitude doesn’t help anyone. If someone tries to put you down, that says less about you and more about them.
You got this!
Now go forth, learn in-depth computer science using the resources and terms mentioned in this book, and make some cool apps and websites! You are a new software developer, and you can make all sorts of amazing things, just as long as you try. Don’t give it up. Keep in mind: it’s normal to not “get it” immediately. It takes time, but if you put the time in, you’ll get it eventually. Don’t give up before that happens though.
I know you can succeed as long as you stick with it. Consistency and determination really matter, but as long as you have these key traits, you’ll go very far in software development.
Congratulations on completing every section on this site!
You’re now a competent software developer. Now go and make some projects and put them on GitHub!
The only remaining section on this site is supplementary information, like appendices in a book. It’s not really a regular section. This is the final “real” section on this site’s content.