- This series is going to be dedicated to more general and career based things I have learned. I am at a point where I have made enough mistakes that I have some knowledge to spread.
1) caring too much about how to create something : almost too often to count I have spent more time stressing over how to built something vs actually building it. Granted an object oriented hierarchy should be thoroughly thought out in advance. However, when you are trying to create you first app like me,
JUST CODE THE DANG THING AND FIX IT AS YOU GO. You and I both will never get the code 100% perfect and optimized but we can always iterate towards a smoother and more elegant implementation. So just build and fix the mistakes as they come, honestly I have learned more from my app crashing then I have from it working smoothly.
2) Not asking for help : Often times I felt ashamed or even humiliated when I could not find why something wasn't working or what a particular syntax meant. I would avoid reaching out and asking for help, that would only exacerbate the problem. So when you have a problem and you honestly can't find a solution by googling it, don't be afraid to reach out to someone on twitter, that's what I do. However, I do recommend that you be kind and courteous and always be grateful of the answer you get, even if it isn't what you wanted.
3) Not joining an online community : For a long time I thought a programmer had to be a lone wolf and only did things by themselves. That is very, very, very wrong. Software development is a team sport and teams are parts of communities and communities help each other. Discord and twitter are great places to find like minded individuals that want to help each other build cool stuff. The best community I have found is the INCLUDE community and more specifically their discord server. It is a C++ group that is dedicated to spreading the gospel of Bjarne Stroustrup. They have a section specifically for beginners, people in that community are incredibly passionate and helpful, it's awesome. If you are not part of an online community I would suggest that you find one
3) Not writing blog posts : For the longest time I thought writing blog posts had no rewards to them and were a waste of time. I was wrong. Often times when I am writing a blog post it exposes very large holes in my understanding of a particular topic. Through writing blog posts I am able to create a better understanding of what I am learning. Also I might help some people learn, so it's a win win.
1) building my own app over a tutorial : This without a doubt was the best move of my development career. Understandably, the process of building it is harder and it will be very simple in comparison to a tutorial. However, building my own app has given me an incredible amount of confidence in terms of my software development skills.
2) Focusing on a small set of skills: Instead of focusing on learning 8 different languages and 10 technologies. Focus on one specific language and technology, we can always learn more later. Also, as you become more comfortable with the technology of your choice you will learn more general skills like, code architecture, testing, best practices and more. This will build your confidence and make you want to learn more and to build bigger things. Like I don't know, maybe you'll dream about building your own operating system ;).
- Thank you for taking the time out of your day to read this blog post of mine. If you have any questions or concerns please comment below or reach out to me on Twitter.