Advice I Wish I Had Before My First Job in Application Development
I’m sure we have all been at a point in time when we prepare ourselves to transition from being a student to working and obtaining that first job.
For me, it’s been three years since then, and now as an established Senior Developer, I look back and reflect on that journey.
My goal is to share my experience and a few things I wish I would’ve known to help me prepare for that next big step into web development.
The topics I want to talk about are based on my own experiences and are my opinion, of course, we all have our own. There isn’t a definitive guide to follow whether you are a college student, a self-taught programmer, or someone with nothing better to do. I believe these are all topics developers should learn or be aware of during their transition into the software world.
These topics include server/cloud architecture, APIs, frameworks, Git/version control, CI/CD, unit testing & automation, and development tools.
I believe it’s highly important for one to understand their company’s project design architecture, which includes how users, applications, servers, databases, etc. all interact with one another. In college, I had a basic understanding of how server architecture and design worked, but a lot of the things I learned were outdated. Companies are now taking newer and different approaches. For example, today, it’s almost impossible not to see some form of cloud architecture in most companies when dealing with web or mobile applications.
It’s critical to understand your company’s design and compare it to others to see how they differ and identify the pros and cons of them. You need to learn the lay of the land and the ecosystem before you can start building your house.
Ah, those good ol’ application programming interfaces, or as we like to call them, APIs. I would say that these puppies are probably the most important, if not the most significant, in your work as a web developer. During my time as a college student, I had a brief introduction to their definition and their roles, but I didn’t get any practical training on them. Instead, I read some blogs and articles, and then I started experimenting and built my own web applications. In a nutshell, they provide a way for applications to communicate.
I can go on for hours talking about this topic. Just take my advice and learn the ins and outs of APIs, including what they are, how they work, and how to implement them. Also, be sure to look at different types, such as REST APIs or research other tools such as GraphQL, which takes on a different approach to building them.
Almost every programming language out there has some sort of framework affiliated with it. Frameworks are your friends, and in most cases, they help guide you in achieving specific things and making your life easier. Each may have an individual purpose but think of them as tools with instructions that can help you build different parts of a house. There are hundreds of frameworks out there, and many of them follow the same concepts. Learn a few of them, maybe the most popular or the simplest, but make sure you learn them. You’re welcome! (You will thank me later)
Although I had used Git for version control along with GitHub to share code with classmates on school projects or to experiment with personal projects, I never really understood its ultimate capabilities in the real world. There, you run into things such as merge conflicts and will sometimes find the need to make a pull request. This example is only one of many things you might come across, so it’s important you learn some of Git’s more advanced features since they will become a crucial part of your daily life.
For those of you who don’t know what that means, I am talking about continuous integration and continuous delivery. If you are simply a frontend or backend developer, you probably won’t deal with building and deploying your applications live into production. You most likely have a designated team for this. In either case, it’s important to understand how your build and deployment processes work across your environments. You should understand which environments your application uses, how your application is distributed, and how those pipelines interact.
As the world turns to automation to solve our problems, this subject becomes more and more valuable. To make sure you are delivering quality software to your clients, unit testing, and writing automated tests for your software are essential and will increase your overall value as a developer. Look into different frameworks that can help you achieve this.
If you want to master your craft and be more effective in the way you work, you have to take advantage of the development tools that are out there. For example, we have tools such as Postman, Docker, Cordova, and many more that help you with the process of writing code, as well as testing and shipping it out to clients faster. Everyone needs a little boost.
The possibilities are endless on what you can learn on the path to mastering your craft. These examples barely scratch the surface, and even I have a lot more to learn.
I hope my words help you in your transition from student to career developer. Good luck on your path within this endless matrix.
Please don’t stop the music, Mr. DJ…
Omar Saravia is a Senior Application Developer on ADP’s Studio 55 team for Compliance Solutions in Pasadena, CA.