Throughout the years of being a developer, I have had lots of mentors and those who have shared wisdom and insight that has helped me to get to this point in my career. As I reflect on my time as a developer, if there is one piece of advice I almost always share with all aspiring developers who are hoping to take their career to the next level, it's this:
I know that probably sounds a bit simple but this piece of advice and wisdom can be a huge game-changer in your development career pursuit.
What I'm trying to say, is to not only write code and try out new techniques and technology, but to take the next step and write code with the intent of releasing that code (or application) to the public. What I mean is that you should put your code in some space where people you know and don't know can use it. I specifically encourage you to package your application in a way that users can use, experiment and (even) break your code.
At first thought, you may feel that you may not be ready to do this but that is absolutely okay. Even as a seasoned developer, I sometimes feel a bit hesitant about sharing my own code with others who I do not know. But I do believe the experience you gain from going through the process is huge and that the benefits outweigh any possible "negatives".
So let me briefly breakdown why I think this simple tip can have a huge impact on you as an aspiring developer (and even those who are already professionals):
The experience you gain from going through the entire "development lifecycle" of creating an idea, developing and idea, and publishing that idea is invaluable. In the development to deployment process, there are lessons about code quality, code efficiency, environment feasibility, cost constraints, etc. that you could never learn just by working on personal pet projects. Going through the process of preparing application code for "real world" deployment puts in perspective your current coding and development practices and if they actually align with what it takes to actually make a production ready product.
There is soooo much more I can say on this point and how important that experience becomes in the long-run when you are working in a professional setting but for now I'll leave it at that.
One consequence of writing code with the intent to release it, is that in most cases it strengthens your technical knowledge. Throughout the years of programming, I have learned over and over again, that code that I implemented for some type of "Proof of Concept" personal project rarely works in the real world. As you go through the process of preparing your code for deployment, you tend to learn the ins-and-outs of the technology you are working with because "rarely" does code work the same way in a development environment (e.g. your local machine) as it does out in wild (e.g. in the Cloud). When you encounter these discrepancies, it forces you to dig deeper and to understand more. Sometimes, the process of trying to deploy an application alone, can teach you more about the limitations and the strengths of a technology than hours and hours of reading through documentation on that topic.
I remember shortly after I published my first game to the Android app store that I shared my game with a friend to check out. I simply told him to check out this new game and I gave him no context on how to play the game or its objective. I stood silently next to him as I watched him download, boot up and play the game. In the 5-10 minutes of watching him play the game, I learned one of the most crucial lessons that has helped me in my professional development career:
"Just because something makes sense to me, does NOT mean it makes sense to other people"
Watching my friend play, I realized that I had developed the game with only myself in mind as the user or customer. The UI or user interface only made sense to me. The game rules only made sense to me. And the list went on.
It taught me a valuable lesson: "When creating an application you are almost NEVER the target audience." In most cases when developing code for applications in a professional setting, you are not the only person who will use your application. And building applications that you plan to publish, will really solidify that concept. You will begin thinking of how you code will make sense to someone else whom you will never see and never be able to explain your decisions to. It forces you to think more outwardly and consider how a "prospective customer" would use your application. It helps you to have a much more mature and well-rounded point of view when developing applications.
It's simple: Why not show an employer what you are capable of instead of telling them. One of the core reasons I got my first position at IBM was that I was able to show the hiring manager that I was already able to do the tasks that would be required of me in my new position. Instead of talking about how I had worked with multiple mobile technologies and how I knew about Android development, I simply shared my Android app store link and they were able to see my skills in action. That alone didn't get me the job but after that, the interview was not about if I was able to do the job but if the job would be a good fit for me. Once again, it most likely won't get you the job all on its own but it speaks volumes about your skills.
There is a TON I could say on this specific point but in short, taking an application from development to deployment teaches you what it takes to get it done. It teaches you the steps, the pitfalls, the difficulties and most importantly it teaches you that you can do it. It teaches you the discipline of actually finishing a development project and what it takes. As you work in your professional career, it is inevitable that you will encounter some difficulties; Difficult projects, un-cooperative technology and unreasonable deadlines to name a few. But if you have the experience of deploying applications, If you know what it takes, if you have built that discipline; then those difficulties with not define you, they will just refine you. You will know what it takes to get across the finish line, you will know that you can do it, and you will have the skills and experience to do so.
In my personal opinion, building and deploying apps as an aspiring dev is key. It has personally helped me to get to where I am professionally and I have seen the positive impact it has had on colleagues and friends attempting to pursue and advance their career in development.
So I've had an opportunity to share my personal opinion but I'd love to hear yours.
LOOKING TO LEARN A THING? Check out some of my previous blogs and tutorials:
==== FOLLOW ME ON SOCIAL MEDIA ====