I have received an email from a 15th year old student from US asking the question on where to start the coding / programming adventure. I want to share with you questions and my answers.
Q: “I am currently 15 years old and a freshman at University City High School. I have an interest in becoming a software developer. I was curious to know if I should wait until I am older to start learning different programming languages. I am good with a computer, and have a B in geometry right now so I would say I have different strengths and weaknesses in math. Just to add, school is stressful for me so there are nights where I wouldn’t have time to practice coding and I play travel hockey from August to February, and that can make me stay up late at night. If you have any suggestions on software developing that can be user friendly for a high schooler please tell me! And let me know if 15 sounds right to start, or if I should wait.”
A: It is awesome that in age of 15th you are considering career in tech. When I was your age, I was only interested in playing football and video games . I had however started playing around with a Pascal language ( something really old ) and this is how it started. It was my father that gave me this first spark.
When learning programming you have to remember that at start it might be hard plus you will not see the results immediately, but after some investment awesome things will come. Software dev is one of those rare career paths that you can have fun in your work place. I love comming to my work every day plus I am getting paid a decent amount of money. It is really great.
Don’t worry about time, you are still 15th, treat coding practices as something you can do but it shouldn’t be a priority for you now. I started programming for real when I was 22, I know people that started this path in their 30′s. So it is not like you have to start now and work hard when you are 15th to have an awesome career. There is still time.
When it comes to learning resources.
You could start with:
https://codecombat.com/ – this one will teach you the programming basics + it is fun
http://www.jsdares.com/ – quite nice course also with games
Q: “I saw a video about a software developer saying how in his opinion, the good coders are the ones that love doing it and want to make really good code.”
A: Yes it is cool to be a great coder / programmer but the reality is that most of the positions require average programmers and it is fine to be average. Sure being a great coder / developer gives you huge advantage but don’t stress over it now. With time you will know if you are good at it or not, then you can decide to try something else.
Q: “According to the U.S. Bureau of Labor Statistics, software developers who work on systems software will have an employment growth of 20% from 2012-2022. For developers working on applications will have a 23% growth during the same time period.
A: Yes the demand for developers is huge. It is a huge gap and it looks like it will be like that for the foreseeable future. This demand is driving the salary up, plus you are treated nicely by employees. It is really a nice market. This profession is also safe from all the robotics advancement that might replace a lot of other crafts. There is a risk that advancements in AI might make this profession obsolete in the future but then all creative work will become obsolete.
Q: “Are there any books you can recommend that can help me with coding or just about software developing in general?”
Q: “From your experience working as a software developer, how much of your day is just coding and the other part of your day attending meetings and such?”
A: When it comes to how my work day looks like. It depends. You have to know that software developers are doing many different things, yes when you are junior developer you spend most of the time coding. That’s how everyone started. With time and experience this changes and you are getting more diverse tasks. Some of us are going into more technical roles, some are getting into management, some are leaving the field to pursue completely different career. When you are Junior you are doing simple tasks and you are dependent on your colleagues. In Mid Role you are not dependent on your colleagues and you are also mostly coding. In Senior roles you have to support your colleagues by mentoring them, helping them plus you are also responsible for various decisions and you take a lot of responsibility for the product. Then you can go to Leading roles which require more soft skills.
When it comes to my day, I spend 70% of time doing technical things and 30% of time doing other things like – task management, helping team, helping other teams, doing presentations, attending meetings etc. Btw, meetings are not bad if those are handled nicely.
Q: “Do you have to be a very creative person?”
A: Yes you have to be fairly creative in this field but creativity is a skill that you can train and acquire.
Q: “You said in your blog that teamwork is key. I play hockey so the only way you can get the job done is by teamwork, no solo work will get your team to the top. I am very good with working with others because of this. So could it happen that the co workers that developers work with can try to do solo work, and not much teamwork? If this were to happen, should a person in a higher position be notified?”
A: As for the teamwork. Team Sports are a great way to learn on how to act as a team. Keep on it. When I was your age I was playing football and basketball. There are a lot of programmers that do like solo work but this is limiting them. Software development is not a solo work you need a team and good teams can do much more. You will of course meet solo players that do like to work alone, sure you might go to superiors but your duty as a colleague and good team player is trying to involve those solo players to play with the team It is possible with help of your team leader, he should be notified that there are some problems, but politely without aggressiveness.