When learning something new, you are never alone. Look around and you find a friend, a colleague who is learning as well. We invite you to share one learning journey – the journey to becoming a ‘half decent programmer’ from David Watson, Marketing Copywriter at JetBrains. David is going to self-learn how to program in four months and will write about his progress, sharing some tips and highlights. Let him tell you about this project!
David, could you please tell us a bit about yourself and the journey you’re ready to start?
Hi, so I am pretty new here at JetBrains. I work in the marketing department as a copywriter which I love. So I guess the question is why do I want to learn programming? And why do I want to do it in such a short time frame as four months? I am really into learning new skills and often learn new things which have nothing to do with my direct job, as an example, I was in technical support but did courses on content management, copywriting, marketing and everything else I could in this area. And now look. I have completely changed my career since then. I actually have a masters in Business Management, but I don’t rely on that, at all. I found that lifelong learning really does open up more opportunities than relying on just a formal education. There are a lot of new discoveries and areas to move into, and the world is changing rapidly. By learning new things you can be at the forefront of all this. I want to show that it is possible to learn to program, without any kind of background or formal education in Computer Science. All it takes a certain amount of effort and determination to do it. I have not got all the time in the world, so I have limited this project to 4 months, I find putting in limits forces you to stay proactive and keep working toward the end goal. Really if I can do this, then anyone can.
The truth is many of us have forgotten how to learn; for some of us, it is even that we have never truly even learned how to learn. In this blog series, I plan to take you with me on a quest to learn how to learn programming from absolutely nothing. I am in a unique position, with access to a company full of some incredibly experienced developers, where even the graphics department can understand that refactoring a parser to work inside a different interpreter version is a normal thing to consider. (Yeah, that’s way over my head!) I have to communicate with developers every day so it is in my interest to learn the ins and outs of what they are saying. Even though I’m not required to learn how to code, I would argue that it is definitely in my interest to.
How do you feel at the very beginning of your journey?
Everyone has that stack of unfinished projects, those things that you wanted to do but somehow you get distracted, turned around or demotivated. Learning to play the guitar was one of those things for me, I bought the most expensive guitar I could afford, thinking that it would be the motivation needed to see it through. It looks great on my wall, but that is about all I can say about my guitar. You can’t look at something or read something and expect to be an expert in it, learning a new skill takes practice, understanding, and building up habits to result in anything close to skill mastery. Follow along and you will get methods on how to get there yourself and a roadmap to follow so you can get there with me. Will it be hard? Sure. Worth it? Absolutely.
I understand you’re surrounded with developers, but still, why programming?
Programming is a skill for the modern day artist. It opens up the limitless potential to create, fiddle and experiment, to build whatever is in your head. The new age of the entrepreneur is no longer just computer literate – they are computer fluent. You can make a business out of lines of code and take steps to solve humanity’s problems. So if future proofing your skill set with in demand knowledge doesn’t tickle your fancy, it might come in handy if you ever have to reprogram the new T-108 model Skynet sent to terminate the last pocket of human resistance; or how about just watering your dahlias whilst you are on an all inclusive sunny Greek holiday; just from the touch of a button on your smartphone. This is the world programming can give you. If you enjoy any of the following activities: Playing; thinking; creating; puzzles; experimenting. Then you are probably going to love programming.
You have a full-time job and not so much time I guess, how do you hope to manage your learning?
We know the excuses: I’m too old, I don’t know where to start, I’m not clever enough to learn programming. I am in exactly the same boat, I am 32 years old, two kids, a dog, I have a computer but other than the occasional browser history purging that is about the limit of my capabilities. Together we can get through this and come out on the other side stronger. No one is born a programmer, it is something each person has had to learn and at different points in their life. Sure, younger people have the time to study this, but it is not a skill that only they can learn. I don’t have the time either, so this journey needs to be as effective and efficient as possible, anything I can do to make this quicker I will share with you. The resources used, the questions I get answered, the methods and systems to learn this, even the mistakes… There are going to be a lot of mistakes, this is how it is, it is all out on the table on our mission to learn programming. I hope that the people who follow along with the series can use it to change their own world.
So, what is the plan?
Failing to plan is planning to fail as they say. So with consultation with people who have done it themselves and can now call themselves developers, there is a plan formed for us to go through and learn the different aspects needed to be an effective programmer and one that can easily adapt into new unknown situations. The end goal of any skill is to be able to be able, in other words when you can do what you want to do, then you have got to the point in the skill that you can say you have learnt it. There is no exam at the end but you should have your end goal in sight. My end goal is to be able to program at a level of someone who could potentially take this up as a profession, an intern or junior level programmer for instance. Your own goals might be different from my goals but I think if you are still learning programming then you should get some useful information to help you from this. So take the time right now to come up with exactly what end project you want to be able to create. It could be a game, an app, something that you have already seen and would like to improve on, there is no limit here, you don’t necessarily need to get this done by the end of the 16 weeks, but just by following along you should have some solid foundations, with insights from my own questions answered by developers along the way. Every so often, there will be a reference task for you to complete concerning your own end project.
Could you please share more details about the topics you’re going to dive in?
Sure, here’s an outline of my series:
Post 1: Why exactly should you learn to program
New skills keep you relevant. In an environment of fast change having in demand skills can ensure your success in business and open up opportunities you might never have thought possible. We will lay out the reasons it is worth taking on this task, so you can decide for yourself whether it is something you should pursue.
Post 2: What language should you learn first
The age old question answered. Where to even start? There are so many languages out there which should I start with and why? What are the benefits of learning the different languages?
Post 3: The resources available to you
The internet is full of information. Where can you find the best resources for learning to program from scratch? We will answer this question and provide the best resources according to our own developers on where you can find study material, and the benefits and drawbacks of each.
Post 4: Creating a SMARTER learning plan
Having a plan can keep you on track with your learning. Plotting your results and seeing your progress through the weeks can help you stay motivated. We will look in depth at making a plan to learn which won’t be applicable to just programming but any new skill.
Post 5: Learning how to learn
Learning techniques and dedicated study. What is suggested for learning effectively the best practices and options which will help make this journey as effective as possible.
Posts 6 – 14: Diary of the developing development or a developing developer
Putting it all together. It will all be out on the table: lessons learned, mistakes made, questions answered. Learn from my mistakes and get some extra reading, tips and tricks, learning methods. Send over your questions and we can share the answers from our top developers.
Post 15: Reflecting on what we have learned
Time will show. Hopefully I can reflect on the parts that really worked out as well as all the lessons learned.
Post 16: What now? Where to go from here
Programming is a skill which a coder can always be improving on. I will share the best practices and help you create the best code possible. There is always room for improvement. This is an art we can give you the techniques of the masters.
Thanks, David! We will stay tuned and look forward for the first post on why exactly should you learn to program. Good luck!
If you have any questions for David or the JetBrains team in the meantime don’t be shy! We are happy to answer any questions you might have and help you on your own journeys.