Question

What is the best way to start learning to code?

I know nothing about coding and I want to learn how to make things like Notion. Where should I start, any books or online course recommendations?

Mentioned
#Education #Business Development
Share
faruque's avatar
a year ago

Since you mentioned "I know nothing about coding...", my 2 cents is start with Excel (or Google Sheets). I know it is unorthodox, but Excel teaches you the fundamentals without you realizing it.

For example:

  1. Open a spreadsheet
  2. In cell A1 put 5
  3. In cell B1 put 13
  4. In cell C1 put in this formula: = A1 + B1
  5. Press enter and it'll show 18

You've just learned about variables. There's obviously a lot more, but master the core fundamentals, and learning programming becomes a lot easier.

6 points
maguay's avatar
@maguay (replying to @faruque )
a year ago

Great idea. And if you want to take it to the next step, you can start building useful things in Excel macros or Google Apps Script for Google Sheets.

Or, start automating the spreadsheet with tools like Zapier/IFTTT to add basic logic to your spreadsheet.

2 points
thedatadavis's avatar
@thedatadavis (replying to @faruque )
a year ago

I first learned to program by editing code generated in VBA by recording macros.

Formulas + the Record Macro button are great on ramps.

2 points
maguay's avatar
a year ago

A few ideas that could be good places to start:

  • Design+Code: I'd taken one of their course about using Sketch years ago and it was really well done—detailed copy with screenshots to make it easy to follow along. I haven't taken any of their coding classes, but everything they make looks nice.
  • Codecademy has some free classes to start
  • Khan Academy has free programming classes

If your goal is building something like Notion, you'd likely want to study web design and dev—then would use tools like Electron and Reactive Native to make native apps from your web app, as that's how Notion, Slack, Figma, and many other popular new apps are built.

5 points
Mint_Natchamon's avatar
@Mint_Natchamon (replying to @maguay )
a year ago

Thank you!! I appreciate your help and will definitely take a look at those courses 😁

1 point
crabl's avatar
a year ago

This is going to sound obvious and unhelpful, but it's the way I learned: start building it! As soon as you get to something you don't understand, as a friend who knows how to code, or just Google it. Learning from a book or online course is okay, but learning by creating your own problems and finding ways to solve them is 1000x more useful: not only that, but when you get to a problem like "how do I save things in a database?" you can always find a book on databases and read through it at that point. No need to front-load your learning with things you'll likely forget along the way. It might be interesting to watch a few "full stack development" videos first to get a flavor for how things are done and what components are involved at a high level, but don't spend too much time sweating the details until you absolutely must (this advice also goes for any skilled software developers).

5 points
crabl's avatar
@crabl (replying to @crabl )
a year ago

Forgot to mention: don't let your lack of coding experience be a barrier to starting on designing the product. Find a way to mock your ideas up (pencil and paper is more than adequate in terms of a medium) and explore different ideas for user interfaces. If you get started coding right off the bat, you'll likely just end up building something that already exists. Really find a way to dig into your ideas, write them down, explore the principles behind them, and examine the "why" behind the "what".

1 point
Mint_Natchamon's avatar
@Mint_Natchamon (replying to @crabl )
a year ago

Really helpful, I will definitely do that.

1 point
jfals82's avatar
a year ago

https://www.freecodecamp.org is a good place to start.

Also, pick a project to work on and use google to help you find answers to build the actual project.

3 points
jasonexcel2008's avatar
a year ago

I pursued my career in software industry after I graduated with a quite different engineering degree. I learned all the advanced coding and software development not from college. The best way to learn coding in my view is find a tutor which could be your friend/family member/paid coach. This will save you from lots of frustrations during the learning. No matter how people describe the coding, it always has some learning curve and require other people' help.
If this isn't an option for you, either you couldn't find anybody or you want to save money, then go for an online course or even a series of courses.
Learning code from zero is hard, don't fully put it on your own. No matter which way you finally choose, always try to ask for help when blocked.

3 points
NickPersico's avatar
a year ago

I’ve done a mix of two things over the years:

  1. Learn with Treehouse (teamtreehouse.com). Their lessons are top notch and the fact that you need to pay motivates you to make sure you get value.
  2. Take small coding jobs that are slightly over your head (websites, tiny apps, scripts, etc) from folks and put pressure on yourself to figure it out and deliver. This is where I’ve made the biggest leaps in progress.
2 points
rylax's avatar
a year ago

Totally recommend what most of the people have been said here. As a self-taught developer, I would like to give you my two cents too about something that has not been mentioned yet.

Since you are a beginner I would highly recommend you to start with a programming language that is type-safe - meaning you have to explicitly define the type of input and output your program will perform. I would suggest to start learning with Swift, a language developed by Apple. It feels very modern and forgiving but at the same time it helps you to learn about types. You would likely write an app like Notion with web technologies such as javascript.

Once you have learned a programming language you will see that it is fairly easy to jump to a new one. Most of the time it is just some syntax that has changed. However, switching from a type-safe language such as Swift to a weakly typed language such as javascript is much easier and efficient than starting out with javascript and then having the lack of knowledge about some of the most crucial concepts a programming language offers you and painfully learning it along the way.

My first language was javascript and I kind of regret it to not have started with a stronger typed language. Overall, the most important thing is to have fun while learning and also accepting the fact that you will likely see a lot of red errors popping up everywhere. This part of the game and makes it even more rewarding once everything compiles/works :)

Happy to answer any questions you might have.

2 points
dozermanblues's avatar
a year ago

As @crabl mentioned, a great way to start is to learn is by designing, then building. Have your end goal or vision in mind and work backwards from there. Allow it to be very simple and basic to start. It's certainly how I learnt. For example, my first venture into coding was building a simple "static" website without a backend content management system. A year later I built it again from scratch with a WordPress backend. There was a lot of trial and error, and questions and answers along the way but the end result made me proud.

Another tip: Knowing the basics of 'technical sophistication', as Michael Hartl likes to call it, can save you a lot of time and frustration in coding. His Learn Enough to be Dangerous courses on using the Terminal, GIT, a text editor and HTML/CSS is structured beautifully and is very fun to do. https://www.learnenough.com/

2 points
Lucien's avatar
a year ago

If you want to learn iOS development, I recommend you Paul Hudson on Youtube :)

1 point
Mint_Natchamon's avatar
@Mint_Natchamon (replying to @Lucien )
a year ago

Thank you🙏🏻

2 points
How do you manage your chat inbox?

Hey guys, first post here. As part of my work, I have to deal with and respond to a lot of incoming messages from different chats: Linkedin/WhatsApp/Signal/IG. I try to use Unreads/Archive features...

Do you use Notion and Roam/Obsidian? What's your workflow

First-time poster here - this looks like a great community, thanks for having me :) Is anyone here using both Notion and either Roam or Obsidian? I'd love to hear about your workflows. I'm using ...

What's the best tool for building a customized API documentation?

Let's say you have an API you want to document and you want to: - Let your users test their calls to the API thanks to a "playground" like the one on the Figma API - Be able to customize it to matc...

The community for power users.