Skip to content

Instantly share code, notes, and snippets.

@stuartmclean
Last active April 13, 2021 19:46
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stuartmclean/b1d1c41266e2b68299f81bf499e7d2b0 to your computer and use it in GitHub Desktop.
Save stuartmclean/b1d1c41266e2b68299f81bf499e7d2b0 to your computer and use it in GitHub Desktop.
Some advice for first time programmers

Advice for first-time programmers

What you need:

A good free online course:

Like Harvard CS50.

A good note taking app - there's too much to remember

Apple "Notes" is ok, but Joplin is better.

A good text editor

Apple "TextEdit" is ok but Sublime Text is better. It has many useful shortcuts.

A good terminal

Apple "Terminal" is ok but iterm2 is better.

One of your first uses of this should be to run "Read Eval Print Loops" (repls) to check lines or sections of code.

  • Once you've installed nodejs you can type node to get a javascript repl.
  • Once you've installed python3 you can type python3 to get a python repl.

Also check out repl.it, which is a great site that makes it easy to write and test multiple lines of code in many languages.

A good web browser

Apple "Safari" is ok but Google Chrome with developer mode and Firefox are better.

You will probably be opening a lot of browser tabs. When using Chrome, I recommend installing these free extensions:

  • tab suspender to decrease memory usage when you have lots of tabs open.
  • one tab helps to manage open tabs.

A good password manager

As a developer you should know better than to reuse passwords. Of course, you can't keep all these passwords in your mind. 1password is a good paid solution and Keepassx is an easy to use free solution.

A good clipboard manager

There's lots available. CopyClip is free but I personally like Alfred which also includes a few other productivity tools.

Dedication

10 - 20 hours per week (2 - 3 hours per day). Remember to take regular breaks, maybe try the pomodoro technique.

It's best to code a bit every day.

At some point you will very probably feel extremely frustrated and want to quit. Remember that this happens to almost everyone.

Also remember that you're quite certainly not the only person who's faced the problem that's frustrating you and that almost everyone gets "imposter syndrome" at some point.

Where to go for help

  • web-search - the internet was created by programmers so there's lots of resources for programmers.
  • w3schools.com
  • stack-overflow.com
  • ask a friend
  • take a break (somewhere between 5 minutes and 1 day is best)

You can handle it. :-)

Extras - for later (or sooner if you want)

Familiarity with version control

Sooner or later you'll need to know this and it's a powerful tool to have in your belt. Reading the second chapter of this free e-book is a great start.

Familiarity with an Integrated Development Environment (IDE)

These are huge and complicated bohemoths with more features than any one person will ever need, but they will save you lots of time in the long run if you learn how one works.

IMHO the best free one is virtual studio code. Here's a video about how to set it up for web-design.

Jetbrains makes very nice IDEs for almost all popular languages. There's free "community" versions available for some of them. A good hack is to buy the full version of Intellij IDEA and then use plugins for all the other languages.

Familiarity wtih a framework

Knowing a framework will save you lots of time when developing and knowing a popular one will seriously increase your job prospects.

The most popular javascript frameworks are angular and react. The most popular python web framework is django.

Familiarity with Markdown (MD)

Markdown is a simple and powerful dialect for writing documentation. You can even use it when writing notes in Joplin. :-) This document is also written in Markdown.

Familiarity with a terminal editor

I balked at learning one of these at first but sooner or later you will get into a situation where you'll need to edit a file in the terminal. If you get use to this

The most common are vim, emacs and nano. Yes, I put vim first on purpose. It's really worth taking the time to learn. Unless you want to code in clojure. Then you should probably learn emacs.

Pairing one of these with the terminal-multiplexer tmux gives you superpowers that were never intended for mortals.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment