loading...

Critiquing my growth as a developer over the last few years

georgecoldham profile image George ・4 min read

Mid 2016 I left my Computer Science degree to have a year in industry, working as a Junior Software Engineer, as many students do. I got lucky and found myself surrounded by an amazing team of motivated developers and a line manager who pushed the entire team to take every opportunity for professional development available. During this time I completed the Free Code Camp course, attended monthly developer meetups, attended my first developer conference and grew a network amongst all the learning that comes with your first developer job. When the opportunity to remain with that team arose, I took it and didn't look back.

August 2018, I had now been a Junior Software Engineer for two years; I got an email from my University. This is the final year that they will be running my degree. I had to go back, and oh boy, what a learning experience that was.

Lessons learned from returning to university.

I think and plan as a team, not an individual.

Holy moley was this a near disaster. In over two years of working as part of a close knit team, I had lost the ability to know my own limits. My decisions with planning and project scale were way off, I was estimating deliverables as if i still had a team behind me to bounce ideas off and to benefit from our combined experience. Christmas deadlines were a mad rush to deliver the assignments and all because I had committed to deliver twice the amount of everyone around me. Assignments since have been notably better planned and sized.

I will take on more solo projects and contribute to open source to better gauge my abilities and better manage my own expectations.

I have learned how to learn.

I attend lectures and seminars, get a barrage of new information, and it is no longer daunting. Working in languages I had never used days before I am able to make good headway with assignments where in the past this would have been a large hurdle to overcome. I know how to read and understand language documentations, how to structure searches to get the most relevant and useable results. A skill I only now realise is something I had gained. Looking back at assignments from previous years, they are laughably simplistic and poorly coded. All work that I thought was amazing at the time.

This is something I feel is critically important to never stop, the idea of becoming comfortable in a position and having my development stagnate terrifies me. Feeling like I am making progress towards a goal gives me purpose and drive and is the one thing that I encourage everyone to do.

I have learned how to teach.

Unfortunately there was no escaping the dreaded team project. Trying to coerce team members to attend meetings and stop waiting for other people to do work for them was an interesting challenge. I think it was more that people were burying their heads in the sand because they didn't know how to start working on something they hadn't ever been taught. Walking the team through code and patterns that would help them with their sections had a massive improvement to the engagement of some of the more unwilling members. I am now the goto person in the group now for any technical questions. Taking 15 minutes out of my day to help people and talk them through their code issues is much less stressful than wondering why there is no work delivered.

I want to write blog posts, I read lots and feel like I should share my knowledge and findings. I am sorry that many will likely be covering the same topics as others have already discussed in detail, but I hope that my own spin will help some people in some way. If just one person finds my posts useful or enjoyable, i'm going to call that a win.

I can now manage my time.

In previous years, I would be one of many, rushing assignments the day before the deadline and pulling an all nighter just to have something to hand in on time. Now I am the polar opposite, I have completed assignments, weeks or months in advance of their due dates and can refine them as needed nearer the time. I am less stressed and am working the same or less hours than I was near the end of other years and produce much better results.

Organised is not a word I ever thought I would label myself with till now. A pleasant surprise. I may even start using a calendar in the future 🤷.

In conclusion.

Returning to full time, formal education was a shock to the system, but also grounding. It gave me a solid benchmark to base my progress from and has left me pleasantly surprised with the person I have become. It is all too easy to doubt yourself when you are mentoring new team members on a project when they are more qualified than you are, or are considering applying for a promotion without any academic background to speak of. I no longer feel like an imposter in the industry and can have confidence in my decisions.

I will be looking for other benchmarks to compare myself to in the future, and I encourage everyone to. You may be pleasantly surprised!


Thank you to @rachelsoderberg for giving me the confidence to write this, my first blog post. Your Junior Developers Should Start A Technical Blog Early In Their Career post, made me realise that I have to start somewhere, sometime, and that may as well be here and now.

Not an active person on social media, I don't think I would escape. Will update if anything changes in the future.

Discussion

markdown guide
 

George, thank you for the insight! I struggle with organization. Do you think that your time management improved because you developed habits that were incentivized from a paid job? In university it is so easy to lose motivation because you are not getting paid -- but if you get a scholarship then that may definitely keep that assignment-completion momentum going. I also hated team projects in university. Your suggestion to take some time to speak with your group/team and present them to various approaches/patterns to their sections sounds like a great technique to lead them to success by getting everyone on the same page. I wish I had someone like that/yourself to work with in the past. I have encountered devs who either berated others for not knowing how to do something, or they also didn't know how to approach the problem. I have definitely fallen into the category of the less engaged team member, usually because I am uncomfortable with my level of familiarity with some languages like JS or Python. That said, I still received a 4.0 in my CS courses in university, which gives me confidence to move forward in this field, but I still feel wary of my abilities. Documentation definitely becomes easier to digest as you build your code knowledge.

As someone who has not worked with a team or company as a dev, I am curious to know more about what goes on when you begin working as a junior developer. Maybe you could save this response for your next blog post if there is a lot to write about. I don't know what languages you work with, but it would be nice to hear about how it all starts. Do most hold daily scrums, build component by component from reference of the design documentation, program alone or in pairs? When people at (JS) meetups say they have some work they need done -- of course it could be anything -- but is there usually some sort of tasks that are usually in demand/ left for junior devs? Also, aside from contributing to just an open source project's documentation, how should one go about actually getting involved in the code of an open source project?

Thanks again and keep on posting!

Dylan

 

My time management improvement, I put down to working in 2 week sprints with a number of tasks that I have to do within that time. I set daily goals and am honest with myself as to if I achieve them or not. It gives my day a purpose and I find myself procrastinating less. I also leave the house to work, cannot focus at home.

I worked as a full stack js developer with a team that was moving more towards devops. We worked in 2 week sprints broken down into tasks we could potentially fit into that time. At daily stand ups we set our daily targets and detailed how we achieved or why we did not achieve previous days goals.

 

Congratulations on your first post! It's not easy to put yourself out there and you've done an awesome job writing about your experiences.

 

Great post! I may have to go back to school now!