Image sourced from Northern Virginia Community College.
There isn’t really a silver bullet to learning web development – individuals have different learning styles and backgrounds. In a way, I believe that learning how to start learning web development is like learning a language – it has it’s structure, syntax, and is constantly evolving. I have often been asked how I have learned web development and programming, and I always begin by first talking about my career change in 2007 – as that is where it all started for me.
If you are busy and don’t have the time to read this whole post, below is a high-level summary of the programming languages I learned and when I started learning them. You can also see various papers and learning experiences on my LinkedIn profile.
Web Development Summary and Timeline
- More H.T.M.L
- More C.S.S
- More H.T.M.L 5
- More C.S.S 3
- More P.H.P
- More MySQL
- More jQuery
- ASP.NET with Entity Framework
- ASP.NET M.V.C
- CodeIgniter (P.H.P framework)
- WordPress – customization of themes
- Ruby on Rails
- Agile Development Methodologies
- Project Management
- Computer Human Interaction
- Advanced database management
- More C#, PHP, MySQL, HTML, CSS, JQuery
- Linux server administration
- Systems administration
- Advanced object-oriented programming
- Software design patterns and principles
- More C#, PHP, MySQL, HTML, CSS, JQuery
- More M.V.C
My Web Development Story
My first experience of web development was in 2005, when my American friend introduced me to MySpace. They taught me how to use HTML and CSS – to manipulate my profile page to the way I wanted it. At first, it was really frustrating – because I kept making mistakes all the time; however, it didn’t take long for me to put the pieces together. My years of learning Japanese at high school armed me with the thought processes needed to start grasping HTML and CSS – and practice was very instrumental.
I didn’t take my new-found abilities in web development seriously until 2007, when I hit a low point in my life and was looking for a new direction. At this time, it was when I started to take my experiences from two years earlier seriously – I became bitten by some sort of programming bug. When this happened, I thought that this would be a good career for me, and began planning a five year plan to gaining a professional career in web development.
My First Step
My Second Step
My Third Step
There was yet another step, when I decided to change degrees – I converted to studying towards a Bachelor’s Degree in Information Technology in 2012. It was here where I got my first “real” paid job in the web development industry – I learned to customize WordPress themes and templates, and also learned responsive web development – which I really like. I also learned ASP.NET, ASP.NET MVC, ASP.NET Entity Framework, and enhanced my knowledge of HTML5 and CSS3. Learning the various implementations of ASP.NET was quite challenging, as I had no prior knowledge of C# (which is the key language in ASP.NET). This wasn’t a big a barrier as I thought, since I realised that my previous and current experiences with Java and PHP would serve me well – the programming and concepts behind Java and PHP served me well in learning ASP.NET. By now, I have realized I have learned a lot in web development since 2007, but I’ve always known that learning is a lifetime occupation.
During this time, I also looked at web programming frameworks like Ruby on Rails and the PHP-based CodeIgniter framework. As with all the skills I have learned over the years, I try and re-visit them as much as I can. It’s not always easy trying to learn every programming language out there – I have tried to look for similar patterns in syntax and structure to help me progressively learn new languages.
In July 2013, I began my year-long capstone project – which was used to bring all the skills I have learned over the years, and apply them to a real-world project for a real client. There were many trials and tribulations, and also plenty of extra learning – not only development and project wise, but personally as well. To help prepare for the inevitable heavy workload, I spent at least 6 months mentally preparing myself before-hand. That enabled me to be more focussed, more persistent, and giving my mind better structures in terms of problem solving. This capstone project concluded in June 2014, with a final panel and processes presentation in front of industry experts. Despite some nerves and a mild sense of paranoia, I managed to be more composed than I ever thought possible – rewriting my presentation from scratch the night didn’t prove to be such a significant barrier after all. I was pleased to get an A+ for the project – it was an extremely great confidence boost as I concluded the degree.
After graduating with the degree, I spent some time revisiting some concepts I learned during my studies, and exploring new ones. I also spent a short stint in Wellington (NZ) working for an I.T company specialising in web-based booking systems for accommodation and car rental providers. I was made redundant from this position due to an external contract falling through, but I still got some good experience working in a professional environment. I plan to keep looking for more professional positions in my area, refreshing skills I have learned over the years, and learning new skills.
I have also opened myself to the opportunity of doing free work for not-for-profits; this is something I encourage any developer, experienced or new, to undertake – because it will help build your portfolio and experience at the same time. This is something that could also help bust the dreaded ‘I need a job to get experience, but need experience to get a job’ recursive loop.
If you can grasp the basic concepts of programming, you should be able to learn programming languages reasonably well – depending on your willingness, persistence, and patience. Being able to problem solve in a logical and planned manner will also help you immensely.As with anything and everything you learn in life, the best thing you can do to become competent in programming is practise, practise, and more practise. I have learned by having good discussions about programming with people really helps with learning the programming languages I’m working with. Also never be too afraid to ask questions – you have nothing to lose and more knowledge to gain :).