Something every developer has faced during their life. Learning
to code and program isn’t an easy task, it can be difficult and really
frustrating. From my experience I went through countless programming languages, tutorials
and projects before I even considered myself at being proficient at coding. The
reality is it’s a steep learning curve and the programming language is only
half the battle, the concepts and techniques you learn with it are arguably
more important than the language itself.
Follow @EdwardMuldrew
My first real experience of “coding” was doing my A Levels in school. We used Microsoft Access
to build a database and used small snippets of SQL. However Access provides such
a high quality GUI I rarely needed to implement my own SQL. Further to this we
also made a website as apart of our A-Level project which was made through Dreamweaver,
again a program which allowed you to design web pages by adding elements as
opposed to coding the HTML yourself. This experiences left me frustrated as I
wanted to understand and get a real grasp of what programming was.
I had spent time at Code Camps over the summer where we used
MIT’s App Inventor. Although I managed to develop a decent Android App through
this and became a finalist for the Code Camp. The drag and drop nature of App
Inventor still felt to me like I wasn’t properly programming. Perhaps this was
because I had a pre-built notion in my head that programming was writing out
thousands of lines of code on a dark themed code editor. In reality these learning
experiences were helping me learn a lot about the skills of programming. For
example sequence control, logic and debugging were all concepts I learnt
developing that app. I just never considered this at the time.
So what did I do?
I volunteered at a local code club called Coder Dojo which
is a global volunteer-led community of free programming clubs. I used this
experience not only to help young programmers to code using programs such as
App Inventor, Game Maker and Scratch. It gave me access to speak to other
people in industry and ask them what programming language I should learn. I got
a different answer from each person which again left me frustrated and confused.
Eventually I ended up choosing C++ as I found a C++ programming
book in a shop. This was a bad choice. Not only did I try learn programming like
I would for other subject i.e taking lots of notes. This led me to not practicing
coding as much as I really should have. It also got me to a point in learning of
C++ using memory management and pointers which completely confused me. The
reality was printing meaningless things out to the console and working with
variables bored me when trying to learn the language. I wanted to build “cool”
things and experiment.
I continued trying lots of languages such as HTML,
Javascript and Java. Making progress to some extent and learning bits along the
way. Even after my first year of University spending time learning Java for a
full year did I feel that I had a true competency with the language. This was
mainly down to the fact our programming assessments on Java were testing specific
concepts we had spent time learning e.g Inheritance, Encapsulation, etc. This
was useful but it was very “code this to
show your competency in this programming concept”, which is fine and is important.
However it wasn’t until I spent the summer working for a
company working with an Angular application did I start to feel I was getting the
hang of this programming business. All the concepts I had spent learning over
the past year were consolidated with real world examples of how they were useful.
I could start to understand the importance of good variable naming conventions,
clean code, making sure my code made sense and easy to read. For the first time
I started feel I had a fluency to my programming and coding. I had an
understanding and reasoning behind every piece of code I made. I can’t express
enough the importance of real world experience in comparison to University
teaching. The skills you learn are invaluable. It gave me confidence going in
to my second year with a different mind-set. I knew what was good programming
and bad to which I applied to my second year Android project.
To conclude having a pre-built notion of what programming is
and how it should be done can hinder your progress. As long as you are doing
something then you are on your way to learning programming. It’s not an easy
thing to learn especially when there are an abundant of options out there and
everyone will learn a different way. I hope shedding some light on my
experience of learning to code can help someone else.
Comments
Post a Comment