Let's be friends

Posted: October 23, 2020 / Last updated: August 25, 2023

We hear these questions every day:

“Which language to master?”

and

“What is the best language?”

and

“What should I learn first?”

For some reason – people allow the idea of “coding” to be a mystery. It feels “other.” But you can frame it differently – and create a clear conceptual model.

Computers aren’t as complex as we let ourselves believe they are. That’s where to start.

Human speech

Currently, everyone at PE speaks English as our primary language. We use the words / the nouns, adjectives, verbs, and put them into sentences. We all know what a “car” is – and what it means to “drive” or “cook” and what an “apple” is and how to “slice” it up and “eat” it. Those ideas are things that each of us knows and understands. We take it for granted. But – these are their own “codes” and they are just arbitrary words that mean things to us. We share the understanding of the concepts – and that is why it works. Before that – we used drawings and dances and grunts. The actual words don’t matter nearly as much as the shared understanding of the meaning. You can get a lot across with just a glance.

Computer language

Computers are simple and brittle versions of our brains. We tried our best – but it’s pretty hard to invent things that we can’t understand – so, we usually just mimic what we already understand.

The computer doesn’t know what a “car” is. It doesn’t know what “driving” or “eating” or an “apple” is. So, you have to kinda map it out and explain it. But – the way we “define” things isn’t much different than how we already define them in our heads.

  • Name: Ivy
  • Height: 5′ 3″
  • Alive: true
  • Likes Dogs: false
  • Will learn to play tennis: undefined

You get the point. Those are just what they call “KEY: VALUE” pairs – and that’s for another story.

It’s all baby-talk for computers.

The point here – is that each programming language is just like any other language – except instead of talking to a person – you are creating a shared understanding with a computer – and really – teaching the computer what things you want it to know.

Now: when you are going to Spain, do you ask “What language should I learn?”  Or if you are going to France, do you ask “What language should I learn?” No. Because you have a clear goal – and you know that when you go to Spain, that they speak Spanish. The goal is clear.

Choosing a language

Don’t choose a language. Instead: figure out what you want to do. Then – you’ll know what language to use.

Also… it’s not all about ‘coding’ and computer instructions. What about the “language” of visual design? or how to work with users?

The code is a good tool… but keep in mind that there are many shared languages and vocabularies and tasks to use that aren’t code.

Do you just want to generally learn ‘programming’ on a conceptual level?

Some computer science people suggest SmallTalk (I’m not sure if we agree…). If you’re excited by that idea… maybe going to a four-year computer science school is the right path. Many of the boot camp schools teach Ruby and Python because they are pretty and closer to human-readable syntax. These are general programming languages – and in theory – you can program a computer to do anything with them – but they aren’t always the right choice if you have a more specific goal.

Do you want to build websites?

Well, it seems like HTML has a bad rap – but let us tell you a secret: (HTML is what you build web pages with). So, if you want to build websites – you’ll need to start learning HTML!

Do you want your web pages to look nice? Well, then CSS is for you!

Do you want to break up your HTML files into cute little components and do some programming? Then PHP is going to come in handy pretty fast.

Do you want to submit data and forms and have a database – and users… well… you can get to that later – after you’ve learned how to build websites, right? Doctors don’t try and learn open heart surgery in their first month of school…

Keep in mind – that there isn’t just a ‘visual designer’ and a ‘coder’ who “makes it into a website.” To be a successful web developer or designer, you’ll need to a deeper foundation in space and typography and all the things that it takes to “design” things. There’s a ton of specialization in this area too. Front-end, back-end, visual, UX, UI, team management, research, content strategy, and so on – so, take the time to really learn about what this means.

What part of “building websites” is most interesting?

There’s a video about that on the crash course page, but – in case you didn’t watch that: There are lots of different roles and tasks. It’s not just “coders” coding.

You have to come up with ideas. You have to do research. Is it an idea worth making? You have to think through content strategy and test it with users. You might draw some stuff on paper and ask people what they think. You might interview people. You might work out some visual design in a graphics editor or jump straight into a prototyping sandbox and build something. You’ll have to create > show people > test > iterate + repeat.

All of the “Designers” who design the ideas and design the budgets and the sales pitches and the prototypes and the usability testing sessions – all need to have a solid foundation in the medium.

You might not end up a ‘super coder!’ You might realize you enjoy graphic design, or focusing on the bigger picture user experience, or building fun little animation for user interfaces. The code is the main tool to implement these designs – but it takes people of all specialties to make great stuff. It’s a team job.

Which of those roles interest you? Because you might want to start with some different tools than “code.” Consider reading these books.

Do you want to work with big datasets and maybe use your statistics background to visualize it?

Learn Python! It’s pretty great at that. You can also use JavaScript (but it’s got some tricky number problems / however they are easily worked out with something like this)

Do you want to build desktop applications or games?

Computer operating systems / and word processing applications like Microsoft Word – and video games are mostly built with C++ (or something / not our specialty) but you can also build games with Python – and any general programming language.

Do you want to build web applications?

Well – you’ll need all that same stuff we mentioned: HTML, CSS, JavaScript – and some combination of some datastore – and maybe a server / or public APIs – or combo… but for the most part – Web applications are getting just as good as desktop applications. Take it slow. Don’t get ahead of yourself, or it’ll take waaaay longer. This is what boot camps usually teach. They just open the fire-hose and teach you everything all at the same time really fast / and unfortunately often very surface level.

Do you want to build “Apps?”

People LOVE talking about apps. Well, they are just basically desktop applications – on a phone. It’s not that exciting. For iOS phones (Apple) you have to learn Swift and Xcode and for Android phones (Google), you have to use Java and Android studio. and really: Progressive Web Applications are the way to go. See ‘web applications’ above.

Do you want to program robots and physical things?

Again – technically, you can program these with any general programming language, but we’ve really enjoyed using Arduino with JavaScript and Raspberry Pi with Python.

Do you want to learn blockchain or cybersecurity?

We don’t know that much about it… but – usually – learning all that stuff above is useful first! You can’t really track down cyber problems – if you don’t know how anything is built. Andy blockchain is a concept for which, you’ll need to understand programming. Here are some things we’ve collected on where to start with Cyber Security.

Do you want to learn to program cars and cranes and things that can accidentally kill people?

Go to Computer Science school. We can’t afford for you to learn ‘coding’ from some dude on youtube. ; )

Artificial Intelligence?

For now: https://thenextweb.com/podium/2019/09/13/11-ways-novices-can-start-the-process-of-learning-ai-programming/ but usually – this is something you do after learning a bunch of math and computer science / not a starting place.

What else is there…

Did we miss something? Is there something you want to learn that isn’t’ on this list? Let us know! info@perpetual.education

Mastery?

Probably not. We aren’t even that great at speaking English. We say “like” every other sentence… and our vocabulary isn’t that great… but we get by.

Your goal shouldn’t be to “master a language” – and instead of / to start using it. It’s a career-long situation. Learning how to break down problems and how to set goals and choose tools and implement tools is 100x more important than any specific language syntax.

You’re not going to master anything. That’s not the goal. The goal – is to get shit done. The goal is to get the computer to do all the ‘computery’ stuff – so you can be more human and spend more time doing human things.

 

Excited about web design and building websites and web applications?

Well, that’s what we specialize in. If you ever want to talk about it – get advice about the field – or hear about our way of teaching, you can reach out and talk straight to the teacher.

Let's be friends