From one beginner to another
I have recently started to dive into the beautiful world of programming. It started kind of innocent, I discovered codecademy followed by other great online courses and tutorials and I learnt HTML, CSS, jQuery and finally Ruby on Rails. It has been almost a year now and I still feel like a absolute newbie, despite the fact that I am successfully studying at IT University (with scholarship) and I have a perfect job as a Ruby on Rails developer. I have never write a single line of code before, I graduated from social studies and I always thought about myself as a “technical impractial individual”. But if I can have such a great success with Ruby, I bet everyone else with a passion can do it too!
Advice number one — trust yourself and build a good habbits
Everyone says it and yet no one is doing it. I do not know why it is so hard for people to trust their skills, even if they are not perfect. The truth is, there will always be someone who will admire you for what you can do and who will wish to be as good as you are. No matter how much/little you actually know. For programming world this is double the case because almost as valuable as your skillset is your personality and your attitude. To be honest, everything can be learned today. With sites as a lynda.com, pluralsight.com, codeschool.com, etc there is no programming language or technique than you could not acquire (with less, more or a lot of effort).
The real secret of what makes a good developer is hidden somewhere else. It’s how you decide to do your work, will it be sloppy and quick because you are rushing home, or will it be precise and good? Will you enjoy your tasks and will you be willing to learn a new things every single day? Will you take the quality of your code as your personal mission?
Everyone says that he wants to be a good developer, everyone agrees that he wants to develop his skills and learn new stuff. The difference is - will you pursue these goals even after a long day at work? If you come home and think: “I have been coding all day long, now I deserve a break” or “I am to exhausted to watch that new video from RubyConf, I will watch a comedy instead”, or “I will not start any new and excited side project, I do not have time for it” then perhaps, you are on the road of settling, not improving.
My secret is that I want to be a good developer. I do not want to have just a job, I want to have a life-long mission of improving myself and moving forward. I built a solid base of understanding how developer thinks by reading great books (Execute, Rework, Remote,..) and by living with one and I was focusing not just on skills but on my attitude. It’s important to learn doing stuff right from the beginning. Indentation is important, code style is important, learning git is important, watching screencasts is important!
My advice number two — be brave and go for it
I got my first programming job because I asked for one. I did not reply to an ad, they weren’t looking for anyone. I emailed them anyway, introduced myself and honestly explained how I am keen to learn and how I would be a valuable member of the team even though I have never programmed before.
My sincere advice is that: you must put yourself into the scary world of first real programming experience and you must do it fast. You will make the biggest progress if you will take a slightly bigger bite than you can eat. I am not saying to lie about your skills or to be arrogant, I am simply saying: hold your breath, count to three and jump. The circumstances will force you to catch up and you will eventually (even though it might be pretty hard) be just fine. No one has ever make any great deal while he was thinking that he is ready. To doubt is human, but to push yourself behind your comfort zone is what gives you an advantage before thousands of others. Be brave and seek opportunities, before someone else will.
My advice number three — get settled into (any) programming community
I would have never done what I am doing if I were alone. Having a programmer friends or schoolmates or even IRC buddies is what makes you strong, and what gives you insight into the programming world. They know what is happening, they will advice you to ask for free Github account (https://education.github.com/) for students (what a great deal, isn’t it?), they will teach you how to use “trollface” properly and in short, they will make your programming world a much more friendly place. It may seems the opposite, but programming its a lot about working together. And it is about sharing ideas and inspiring each others.
I would also advice you to get into the discussions of your current language/topic of interest. Follow debate forums, use Twitter or blog about something, anything! I know from my own experience that trying to learn to program with just doing something for yourself and with actual teamwork is a hell of a difference. When I first committed my work into git a pushed, than said my team mates to pull it, wow, that was a feeling. When I spent my all day discussing on chat about the possible new features of our little web game, I felt so involved. I felt important, because I was no longer just playing around, but I was committed to something real with a people who cared about it as much as I did.
My last advice is simple. Make stuff. Anything. Do not limit yourself to just reading or watching tutorials. I know it may look like an impossible task to actually create something on your own, but you have to do your best. Reading, watching, learning is great but trying is the best. If you struggle with this point, do not try to make a example applications based on tutorials, make something personal. Find something you care about and make it your project. Put your heart into it!
To be honest, I had the biggest problems with this last part. I read, read, read and read and I still could not put myself into doing something. Even now I feel like I would rather watch a video about something, than to actually try to do it. It is scary (and also I am sometimes very lazy), but when you find your passion in it, it will change your perspective.
Journey - Think. Write. Grow.
Self-improvement app which will help you to focus on your emotions, be positive and stay mindful.