Getting Started Learning Programming

Getting Started Learning Programming

HelloWorld()

Several recent articles have listed Programming as a top skill to learn. Even if you don’t intend it as a career, there are many advantages to at least a BASIC* (pun intended) understanding of it. As someone who learned to program in elementary school, I’ve seen the lifelong benefits it brings. For example, you’ll better understand why a certain web tool flows a certain way, or why the computer won’t understand certain information you give it.

Let me share some tips with you on how to best start to this task. I’ll publish a later article with some more tips if you are trying to help a young person get started too. I do my best to explain certain domain-specific terms as best I can, but there may be terms that don’t necessarily get explained. Please take from that how broad and complex the topic has become. But it doesn’t have to be that complex – so to get the foundation right, read on!

Have a Goal – Leverage Purposeful Learning

This might be a factor of my learning style, but I think it holds true for most people out there. Learning to program just for the sake of learning is similar to learning to speak a language you never intend to use. Sure, not many people know how to speak Crimean Tatar. So you would certainly be unique if you knew how – but when would you get to use that knowledge? The same goes for leaning to program. If you have a specific task you wish to accomplish, learning to program in a relevant language is easier and the knowledge will “stick” better. You might want to learn to automate web crawling and “scrape” web pages for information to help you in sales. Or you might want to create a module to enhance your WordPress website. No matter the purpose, doing purposeful learning will help you learn faster.

A key component are the constraints this creates. If I decide I want to learn Python just because I hear it mentioned a lot, I’ll just meander through the concepts. But if I decide it is the best tool to do the Big Data project I find interesting – then when I hit a minor roadblock I’ll be challenged to figure out the way to make it work.

Use The Appropriate Material and Tool

The Tools you use will be broken up into two classes. One will be the language (Material) you will actually learn and use to solve a problem or build a program. The other will be the application (Tool) you will use to write and debug your code in. If you are building a fence, you might use wood, bricks or concrete. Once you pick the material, let’s say wood, you then need to decide if you are using an ax, chainsaw, hand saw or a radial saw. True, you can often look at a fence and tell if someone used hand tools or power tools. But for most programs, the users will never know what tools were used to actually code in.

Materials – The Language

One of the reasons there are so many programming languages is that they often have a specific purpose they were built for. When I got started as an “IT Engineer” my first project was to postprocess the Bill of Material exports from schematic capture tools. That’s part of the design for electronic devices. We needed to convert them into something the fab house (manufacturer) could import. It could have been done with shell scripts and Unix tools like Sed and Awk.

But at the time, Perl was by far the best tool for the purpose. If you weren’t aware, the name Perl stands for Practical Extraction and Reporting Language. Although my first Perl instructor said it really stands for Pretty Eclectic Rubbish Lister. Either way, processing text was its initial strength.

Bill of Materials courtesy of Altium

Although dated, that was Perl’s domain for years. Granted these days I’d be hard pressed not to suggest Python there. Big Data analytics? Python or R. Plan to deploy a web accelerator at the edge? Varnish Control Language was purpose-built for that – JavaScript is far too bloated and slow. Writing Windows Applications or MacOS applications? Only one or two choices on each.

Other times you’ll find that the majority of a platform has been written in a specific language. I’m working on a Plugin for WordPress (a Content Management System) that gives me more insight when migrating a staging site into production. PHP is the answer. Do you want to write a module for Jupyter Notebooks? Likely Python is the language to look at. Sure, others will work, but based on what I’ve read Python makes the most sense.

Tools – Notepad, vi and IDEs

When I first started coding, a simple text editor was adequate. As I was bouncing from system to system on the command line, the editor vi was everywhere and has some very powerful shortcuts. But later when I was coding in Java at Cisco, they provided us with an IDE called IntelliJ. I was hooked!

An IDE is an Integrated Development Platform. An IDE makes the development of software much faster. It allows you to write the code and do the later steps related to building and debugging from a single interface. It also helps by highlighting the syntax or structure of the code. For example, when you start to type out the name of a variable or a method, the IDE will help suggest ones that exist.

Code Completion courtesy of JetBrains

There are single IDEs that work for dozens of languages, and there also are ones that are purpose built for a specific language. If you are already in the work world, try to use the one your company (or the company you want to get into) has standardized on. If you are taking a computer course, like my son is in college, they’ll recommend one to use.

It is likely you won’t be required to use a specific IDE, but you can get more help when you use what the team is using. On a tangent, if you happen to have access to a Raspberry Pi 3+ or better, the Raspberry Pi OS that comes with the desktop and recommended software has several IDEs preinstalled. This is what I use when putting on virtual events that introduce programming and basic electronics in a single afternoon.

Either way, make sure the IDE you select has good support for the language you are trying to learn.

Go with a Full Program

Yes, I punned again. Leveraging disparate “how to” guides or YouTube videos is not enough. There are foundational items you need to learn, and there is logic to how different concepts build on each other. If you don’t know how to create a type of data structure called an array, trying to add (or “push”) a string (a simpler data structure) into one will frustrate you to the point of giving up.

My dive into Perl was rather haphazard. Without structure or peers, I didn’t learn about hashes until I’d written quite a few tools. A hash is a way of storing data that can be much faster for certain tasks. I had instead written complex logic that iterated (worked through) a different data structure called an array. Once I learned that simple item, my scripts were literally 100 times faster. And perhaps 20% shorter.

Santa Rosa Junior College

I highly recommend doing one of the following:

  • Taking a multi-week introduction course. Be it Coursera, edX, Udemy or at your local Junior College. These will have the structure and organization that makes the biggest difference. And if you need something pushing you to stay on schedule, the JC is the way to go. There also are the various virtual Boot Camps, but my feeling is that they can be too fast and are not cheap. All of these will hopefully follow that Purposeful Learning model. They’ll explain a concept, then have assignments where you leverage those concepts.
  • Leverage an “Intro to” book end to end. Just make sure it is a true “Intro” book. I’ve always found books published by O’Reilly to be money well spent. That being said, when getting started, you’ll get more from their Introducing Python or Learning Python books than their Python Cookbook.

exit(0)

These three points cover what made the biggest difference for me when I learned to program. I’ll publish another article with some other tips later. But for now, if you want to learn to program – follow this formula. And let me know how your experience was, as well as other tips you’d have for other beginners.

?

* BASIC stands for Beginners All-purpose Symbolic Instruction Code. It used to be one of the first languages taught in school.

Faith Falato

Account Executive at Full Throttle Falato Leads - We can safely send over 20,000 emails and 9,000 LinkedIn Inmails per month for lead generation

4 周

Eric, thanks for sharing! I am hosting a live monthly roundtable every first Wednesday at 11am EST to trade tips and tricks on how to build effective revenue strategies. I would love to have you be one of my special guests! We will review topics such as: -LinkedIn Automation: Using Groups and Events as anchors -Email Automation: How to safely send thousands of emails and what the new Google and Yahoo mail limitations mean -How to use thought leadership and MasterMind events to drive top-of-funnel -Content Creation: What drives meetings to be booked, how to use ChatGPT and Gemini effectively Please join us by using this link to register: https://forms.gle/iDmeyWKyLn5iTyti8 #sales

回复

要查看或添加评论,请登录

社区洞察

其他会员也浏览了