“Learning To Code” Actually Means Different Things To Different People...And That’s Okay
October 15, 2020DependÂ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!
Looking for more like this?
Sign up for our monthly newsletter to receive helpful articles, case studies, and stories from our team.
Make Your Website Shine Through Shareable Meta tags
June 20, 2023Improve the web site preview used by chat apps, websites, and social media with these easy tips.
Read moreChicago Roboto 2022 Retrospective
August 11, 2022Scott Schmitz shares some notes of interest from talks at Chicago Roboto 2022, an Android community conference, that took place August 1-2.
Read more