Development

“Learning To Code” Actually Means Different Things To Different People...And That’s Okay

October 15, 2020

038 0 U0 A0234

Depend­ing on whom it is com­ing from, the phrase I’d like to learn how to code” can mean wild­ly dif­fer­ent things. To help shed light on the sub­ject, I will attempt to put nev­er-before coders into two dis­tinct categories.

I. The Pragmatic

As a prag­mat­ic, you’re not inter­est­ed in the­o­ry. You just want to build a web­site. Or maybe you have a more press­ing con­cern, like writ­ing a script to auto­mate cer­tain tasks. In these sit­u­a­tions, I rec­om­mend lan­guages that are easy to learn to work with.

Python, allows you to write quick and pow­er­ful scripts. The lan­guage also pre­serves a fair num­ber of pro­gram­ming con­cepts that trans­fer direct­ly to oth­er lan­guages with very lit­tle con­fu­sion. JavaScript also lets you accom­plish a great deal if you don’t mind hav­ing to unlearn” the quirky bits that break fun­da­men­tal pro­gram­ming concepts.

My best rec­om­men­da­tion for first-time web coders is to write a bunch of basic HTML, CSS, and JavaScript files, then glue them all togeth­er while host­ing the files in a fold­er on your com­put­er (then lat­er, a GitHub pages repos­i­to­ry). The goal is to remove the road­blocks to writ­ing real soft­ware now with­out hav­ing to first get your head around 500+ inter­con­nect­ed concepts. 

II. The Visionary

As a vision­ary, you’re not inter­est­ed in sim­ply build­ing a web­site. You’d like to go deep­er, dig­ging into mat­ters like: how to struc­ture appli­ca­tions, orga­nize com­pli­cat­ed data mod­els, inter­act with third par­ty pro­grams and data­bas­es, not to men­tion learn­ing the dif­fer­ences between type sys­tems, algo­rithm analy­sis and effi­cien­cy, etc. These are the things that get your blood pumping.

For big-idea thinkers, there are entire cours­es ded­i­cat­ed to these high­er-lev­el con­cepts. Lan­guages like C, Java, C#, Swift can be help­ful in enforc­ing inflex­i­ble or opin­ion­at­ed the­o­ret­i­cal con­cepts in a class­room set­ting. Once you’ve got a sol­id con­cep­tu­al grasp, the lan­guage you use is just anoth­er detail to keep in mind.

Remem­ber, learn­ing high­er-lev­el con­cepts on the fly often means learn­ing the hard way (hacks have a way of com­ing back to bite you, imped­ing progress, or lead­ing to bugs). Then again, if your vision is to land a tech role, JavaScript is hard to beat. Pour­ing over books, frame­works, and exam­ple projects is a great way to build a port­fo­lio and get hired in a hurry.

So Which One Are You?

In my expe­ri­ence with help­ing peo­ple learn how to code, there’s almost always a clear dis­tinc­tion between those look­ing to solve a prob­lem with code and those search­ing for deep­er under­stand­ing of it. With the first group, it’s incred­i­bly dif­fi­cult to impart mean­ing­ful sci­en­tif­ic and engi­neer­ing con­cepts when all they real­ly need is a web­site or a quick script.

There’s a rea­son why Com­put­er Sci­ence or Engi­neer­ing tend to be four-year pro­grams. A two-week boot camp or a week­end cof­fee shop ses­sion is geared more toward solv­ing a spe­cif­ic prob­lem. Which rais­es the ques­tion: Are you attempt­ing to solve a prob­lem or accom­plish some­thing greater?

If You Err On The Prac­ti­cal Side…

I rec­om­mend get­ting the scrap­pi­est, sim­plest, most bare­bones devel­op­ment envi­ron­ment togeth­er — one that solves the prob­lem direct­ly and in a lan­guage that will help you build a sol­id foundation. 

While you’re at it, pare down your goals to the basics, cut­ting out any­thing unnec­es­sary. Learn­ing how to write code can be a chal­lenge. I rec­om­mend mak­ing progress in baby steps with sim­ple code fea­tures that build on top of your pre­vi­ous suc­cess­es. When you’re solv­ing today’s prob­lem the last thing you need to wor­ry about is tomorrow’s solution.

If You’re Look­ing To Become An Archi­tect Of Tomorrow…

You’ll want to seri­ous­ly con­sid­er attend­ing col­lege. If high­er edu­ca­tion isn’t pos­si­ble at this point, spend some time read­ing. Books like the Prag­mat­ic Pro­gram­mer and Code Com­plete: A Prac­ti­cal Hand­book of Soft­ware Con­struc­tion can be excel­lent start­ing points depend­ing on your career goals.

It’s also a good idea to walk through pro­gram­ming tuto­ri­als at places like Tuto­ri­al­s­point, Codea­cad­e­my, or Khan Acad­e­my. Tack­ling small pro­gram­ming chal­lenges and dis­cov­er­ing the min­i­mum viable prod­uct” will help you build up your understanding.

With this impor­tant dis­tinc­tion out of the way, it’s time to get start­ed. Good luck!

Ready to get started?

Call us at 616-594-0269 or send us a note below.
Visit our office @ 452 Ada Drive SE Suite 300 Ada, Michigan 49301
Send us an e-mail @ info@michiganlabs.com