Learning to Code

My colleague Dana pointed out this nice little video promoting the teaching and learning of coding (i.e. programming) What Most Schools Don’t Teach . While it seems to be aimed at elementary or secondary school, I can appreciate the sentiment.

It’s not that everyone should be an expert in C++ or whatever. The idea I like is that learning coding or programming develops problem solving and logic skills. the ability to think in terms of algorithms, with inputs, outputs, loops, counters, etc. Even if you never need to code again, that is a useful learning process.

All of our engineering students will get at least one course where coding is required at some level. The specific language and details depend on the engineering program. Maybe my own (somewhat ancient) experience is a useful example. I first learned programming in university using FORTRAN (or actually a Waterloo variant called WATFIV, and yes we used punch cards). In graduate school I used BASIC on my calculator (a Sharp “pocket computer”), and used FORTRAN some more for some simulations I wrote to model enzyme-mediated reactions with diffusing reactants in spherical particles (don’t worry, chemical engineers will understand that part). Later I started using ASPEN Plus to model chemical plant design (not really hard core programming since it’s more of a software package, but it helps to understand programming concepts if you want to use some of the more advanced features). More recently I taught myself a little Matlab so I could solve systems of differential equations to simulate complex photochemical reaction pathways. It was sure a lot easier to use Matlab than coding my own equation solvers in FORTRAN, like I did many years ago! I also use Microsoft Excel and Access frequently, which sometimes involves basic concepts in coding.

So, you don’t have to be a computer or software engineer to get into coding, almost all engineers do to some degree. It’s sort of expected in the engineering profession. So for prospective students in any engineering program, the video has some good points. Try to learn some coding. It will look good on your resume for that first work term job, and it will give you a bit of a head start for an engineering course. Even just becoming proficient in Microsoft Excel is a good idea.

How to learn coding, especially if your school doesn’t offer anything or it’s too late to sign up? I haven’t really looked around much, but the video promotes www.code.org as one approach. There are also some introductory (and free) courses on Coursera from time to time. Maybe if anyone has better or alternate ideas they can post them in the comments section.

2 thoughts on “Learning to Code

  1. I agree. Programming is a useful tool that should be taught to everyone, because it will teach a different way of thinking. For those looking to get started Turing is a good beginner language, programmed by Waterloo’s own Rick Holt. There are lots of resources on compsci.ca to begin. From there, I would move to python, which allows more real world practicality while still easy to understand. After that, the sky’s the limit!

  2. A good place to visit for introductory programming tutorials is on youtube. thenewboston on youtube offers some great tutorials and I often visit their channel when I start learning a new language.

    I personally got into coding when I was in middle school trying to find some cheats for online rpgs. I was completely self taught and learned the basic programming concepts from writing macros and scripts. You can even find some of my contributions archived from when I was a script kiddie. It felt rewarding in a way (and also annoying) to see people taking bits of my code and taking credit for my work.


Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s