Become a well-rounded developer and keep improving
This year I've spoken to a couple of beginner developers who need advice on how to grow their skills and career. Here are some ideas which are top of mind from my recent discussions.
The tips are aimed at beginners, but will also be useful for someone with experience who is looking for ways to improve themselves all-round or try a different direction (like hobby projects or open source or learning a new language). I plan to use this as a reference to keep myself challenged and inspired when I feel like I am stuck.
On the technical side, you're going to have to keep learning in your career or hobby as a developer.
There are plenty of free online courses and sites with material for you to use.
Don't get stuck in tutorials - take the concepts and syntax you've learned and put them into practice. Build something. Experiment. Throw away your code or keep it as a reminder of what you made. Don't feel like you have to know a lot about a topic or tool to use it - you just have to know enough to get started and you'll figure things out as you go.
Draw your application on paper before coding. What are the pieces needed and how to they relate? What are the opportunities and costs of decisions? How will another developer or an end-user use your application?
Keep your goals small and achievable at the start so you'll build confidence, focus on a few well-defined problems, and avoiding getting discouraged when you feel stuck or overwhelmed.
Don't get obsessed over perfection and understanding everything. Be patient with yourself. Being a developer means sometimes accepting uncertainty or being patient as you work through it.
Don't get sidetracked with bikeshedding. Debates like tabs vs spaces and which language or tool is "best" takes you away from writing better software. Your development style will change over time as you write code and learn from other codebases and experts. Seek to improve, but don't expect to get to perfection as changes happen in real-life. You'll have to adapt parts of your code and even rewrite or get rid of applications, when they no longer fit your needs as a personal project or the needs of the end-users.
Go to coding meetup events in your areas. AWS also has a few online sessions a month that you can join, covering both presentations and the chance to chat to others over a chatroom or video.
Share your learnings and what you've made with your friends and colleagues and in some public space (like GitHub or a blog). You'll be encouraged by positive reactions. You'll get feedback on how to add to your code or application in ways that you hadn't thought of. And you'll find out about bugs or friction that people experience installing or using your application.
If you're lucky, you'll get contributions to your repos from the GitHub community such as issues or Pull Requests. Go to the Settings section of your repo. Disable this option: Restrict editing to collaborators only. Then when someone makes a fork of your repo, they'll be allowed to submit a Pull Request. Also, this option allows anyone to add issues to your repo.
Be kind in your code reviews. Not everyone knows the language, tools and projects a well as you. They may have ideas or code styles that are different to yours. Seek to learn, understand and ask questions, before judging someone and their input or code.
Find ways to contribute to Open Source projects - such as repos that you like or packages that you use. I would not recommend focusing on contributing to Open Source too early on as a beginner. Start with your own projects, as you will have a lot of freedom to mess around.
Over time, you'll find public projects that matter to you and you'll be able to match your skills against the problems.
But when you do get to the point of having your Pull Requests on repos merged, it is very satisfying.
You'll also learn a lot about CI (automated tests and deploys), reviewing code, and getting familiar with another codebase. These skills are invaluable for working as a developer and getting practice on open source repos is a great way to hone these skills. Plus you're making the tech world a better place.
I hope these ideas resonate with you and that you can pick at least one idea and run with it.
This is a re-post from my blog on
GitHub.io. I list some older posts there which are similar, in case you are interested.
- Resources for code challenges and choosing projects to build.
- How to be a developer with technical and non-technical skills
- How to find inspiration - stay motivated as a developer with big and small goals and projects.
- How to choose tech projects - some suggestions on how to find project ideas worth building
Photo by @yogendras31 on Unsplash.