My First 8 months as a Professional Developer after freeCodeCamp

So it’s been 8 months since I started my job after I worked through freeCodeCamp (up to React). I wanted to share a few things that I have learnt from being a new Professional Dev that may help you plot out your own path…
Point 1 — Debugging is King!
Remember when you used console logs and generally just figured out debugging with time and some thinking. And if like me thats all you used, then get ready for a world of hurt.

With a variety of different languages and frameworks in your new company, you will need to become much more zoned in on the best debugging methods as it will save you COUNTLESS hours. Whether it is specific language debugs, context dumps, actually learning to use Chrome Dev Tools effectively or just figuring out where you even are in the file when it gets rendered on the screen!
It’s worth picking the brains of the experienced developers and seeing how they debug. Then make lots of notes and practice. As painful as it sounds, once you start to get your head around it, debugging can be a very rewarding process and can be one of the better parts of the job (it’s often the only part of the job).
Point 2 — Get ready for a large tech stack, large repos, some tech debt and lots of legacy code
If you thought handling your terminal, Webpack and IDE gave you headaches, just wait till you have to start handling:
- different repos
- several concurrent terminal processes
- VMs
- new stack
- old stack
- legacy code with potentially bad documentation
- several PRs at once
- your work failing in testing
- … and so on
You need to become comfortable with all the processes involved and you will also gain an appreciation of why legacy code occurs and why making the decision to build a new stack involves a lot of work that will be a part of the business for years to come.

Point 3 — Dude, wheres my Data?
Trying to figure out where the all the data flows from, through and ultimately originates from is much more complex than I anticipated. Remember that feeling you had when first learning React (without Redux) — building a root App file, requiring all your modules, setting state, passing down in props and then passing callback handlers to change state? Well, multiply that by a 1000!!

I found it to be the hardest part of the job — it requires intimate knowledge of your architecture in the company and experience. But just like the point I made about debugging, learn the best methods for figuring out where the data comes from using methods gleaned from the best resource you will ever have — experienced developers.
Point 4 — Learning new languages, frameworks, libraries, templating engines on the job
Before this job, I knew some JavaScript and React. Once I started I realised I knew no JavaScript and React. The developers I worked with were looking into these things at a whole different level of knowledge and complexity than I realised even existed. But thats a process of learning and experience.
I had to learn to get up to speed with some PHP and new templating languages and in-house systems — stuff I had never done before. This is common in the job and when dealing with legacy code and you have to get comfortable with it. Lots of good documentation (mostly) all over the interwebs.
Point 5 — You will mostly be fixing and debugging at first and not developing anything new. But thats the way it should be…
My job is probably 95% debugging and fixing. And I am ok with that. Its the only way a new developer can begin to gain the experience and knowledge required to work with code day in and day out. Trying to build in new featured would be extremely difficult as:
- you know jacks**t about how to correctly form and create something new in line with best practices and company requirements.
- you need to ease in to the learning process and getting up to speed. You are the most inexperienced member of your team and you should savour this moment and use it to your benefit to learn from others about the best way to create something.
However, I do feel that you should challenge yourself out side of work and I have been working on courses and looking up things all the time. One thing I have realised is that I haven’t made anything from scratch in a LONG time and I have felt a bit rusty compared to starting a new project from afresh in freeCodeCamp. Therefore, I am planning on starting a small side project to learn more React and Redux.
Point 6 — Learn to document and screenshot your work well to assist the PR process for other developers and testers
Use the inbuilt screenshot ability in a Mac and your own personal way to make small videos (I use RecordIt) in order to write the best possible PRs for 2 different purposes: for other developers to critique the code dependent on what needs to be done and for QA to understand what actually needs to be tested and how.
Doing this actually helped me learn a lot in the process in terms of really clarifying what I have done in the code and what I am actually trying to achieve. It also helps with learning terminology and company terms.
Point 7 — Learn to Love Git, GitHub and the PR process
Working on your own, you probably never did a PR (I know I never did). But is so useful for 2 reasons:
- you get instant feedback from your colleagues and experienced developers on improvements you can make. This is INVALUABLE.
- you can build your own confidence and knowledge by doing others’ PRs and asking questions about what is being done in the code, even if you don’t understand the complexity at this point.
Point 8 — Chrome Dev Tools are very powerful. Learn to use them.
I have had glimpses into using the console, CSS inspector, the network and source tabs (very useful — use them all the time). However, I know I could get a lot better at this and it is worth investing the time to do so.
You’ll be surprised just how much you can get from the Dev Tools.
Point 9 — Take your time think about the work and produce the best solution possible
I am lucky in that the company culture fosters looking for the best solution in a generous time frame (although this can change dependent on the urgency of the work, existing code limitations etc.). I enjoy finding the best solution I can by looking how something is done in the rest of the code, experimenting, looking online and asking other developers. It will make you a better coder in the long run.
Point 10 — Question everything
Just ask questions. I will say once more for the 100th time, you have access to best resource you will ever get — Experienced Developers!! They are the best source of info but should also be the last source of info. Learn to try, iterate, look in the code, look up online… and if you still fail, then ask one of the developers.
Although, if you are genuinely stuck, have questions about others code in PRs, unsure of business practices — ASK! Don’t be that guy that doesn’t ask and then does something that may really mess something up, require reverts, annoyance etc.
There are probably a load of other things involved but I stuck with 10. Be interested to hear from others in similar situations about what they agree/disagree with and maybe some other points they have found.
Overall I have really loved my new career and made the best decision for me. Every day is excellent as a developer and you really get to fix problems and build stuff! So thanks freeCodeCamp for the helping me make this a reality.
As for courses and podcasts, this is what I have been doing/listening to recently:
- Another great course by Udemy — The Complete Node.js Developer Course (2nd Edition). Using this to learn more about Node and Unit Testing. I have yet to get on to the sections about Mongo and so on.
- Wes Bos has some great stuff at the moment — I have his Learn Node course but haven’t had time to go through it yet (I’ll try and review it once I am done). His ES6 course also looks really good and he does an excellent podcast with Scott Tolinski called Syntax Web. Highly recommended.
- Came across this guy recently called Gordon Zhu and his site Watch and Code which looks really good. I have been looking through it briefly but have to spend some more time on it but what I have seen so far is solid. He has a lot of coding session videos on YouTube too.
- Front End Happy Hour is a great podcast with experienced developers sharing their insights on a lot of topics. Listen to this on the way to work.
In weeks and months to come, I want to delve more into React and Redux. I also want to start looking into the backend topics following the Node.js Developer Course path out of interest and then build something using this, perhaps one of the freeCodeCamp full stack projects.
In the meantime, anyone have or know of a clean React + Redux boilerplate? Send me a message or leave an answer in the comment. Would like to get going on the next project without having to tool up too much. Thanks.
