My recommendation would be to go down the web dev route to start because it’s very easy to create things that you can share easily (everyone has a browser, but not everyone has python installed on their machine, or wants to open an executable). That can be a great motivator.

I still think App Academy’s free bootcamp is one of the most comprehensive resources to go from zero to making small web apps. It’s very hands-on and they have over 200hrs of material, discord community, and it was updated about a year ago. However, it can be quite daunting and you need to have good discipline to keep going.

https://www.appacademy.io/course/app-academy-open

Otherwise, as someone else mentioned, freecodeacademy is a good beginner resource.

@Lauchs@lemmy.world
link
fedilink
38
edit-2
1Y

If you want a good understanding of the fundamentals etc, I cannot recommend CS50 enough. The original is more difficult and starts with basic stuff (you’ll be asking the computer for individual pieces of memory etc)

https://cs50.harvard.edu/x/2023/

There’s also a python focused version, which is much easier. But this will make learning other languages in the future a bit more tricky. So, depends what you’d prefer.

https://cs50.harvard.edu/python/2022/

Both are taught by David Malan, a Harvard professor who is easily one of the best lecturers I’ve seen.

Good luck!

Edit: Should’ve mentioned, they are all free or you can pay for a cert with edx.

+1 for CS50. This is where I started and I’ve since transitioned to python. I think the basics will make you a better programmer overall (instead of python first), but it really depends on what you’re looking for.

It’s free, right? How much are the certificates?

Free to take the course through the sites I linked (includes ways to submit andbhave homework checked.)

No idea about edx but if you google cs50 I think edx tends to be among the top results.

I Cast Fist
link
fedilink
English
71Y

What’s your age? Ideally, you’ll want at least some knowledge about logic and logical operations: TRUE, FALSE, AND, OR, etc.

Following that, “which language” might be a rather tricky question. Python and Javascript are “good starters”, but they might also “teach” you some bad habits. They’re also highly sought after if you’re looking into possible future jobs.

Personally, I’d recommend starting with either Java or Go. Both have lots of learning material and plenty of jobs, but they should also put you in the “proper” mindset of programming.

I don’t think boolean logic is a necessary prerequisite for coding, if you don’t know it yet it makes more sense to learn about it when you come across a programing problem where you’ll want to use it imo

@simple@lemm.ee
link
fedilink
English
31Y

I second Java. It’s easy to get into, has a lot of materials online, and is statically typed which is great for teaching. Most people who start with Python or JS didn’t have a good grasp of variable types and often make more mistakes.

Python.

MOKANCAN
link
fedilink
-71Y

Go to ChatGPT and tell it to write code in just about any language for you. No learning necessary. /s

COBOL!

COBOL is pretty easy to learn and has lots of syntactic sugar to make programming easier. I’ve heard that it’s still in demand as big Enterprise is running out of first generation coders, but I don’t know how long that demand will last. Ada is another language that people joke about but is in demand in certain circles, particularly military.

Start with an idea of something you’d like to make.
Start with a simple idea.
The clearer you describe the idea,
the easier it will be to code it.
Learn Python.

freecodecamp anyone?

I am guessing that’s a no.

The question is a bit too vague to answer, there’s not really any right answer.

Just - find what you like to do with it, and go for it. Want to make a game? Maybe play around with Godot or unreal engine or something.

Do you have any repetitive task that you’re doing a lot that you could maybe automate? - try doing that.

You can read some books or watch some tutorials or something, but the best way to actually learn is to actually program.

Beyond any of the basics (logic, loops, data types, functions, classes etc), my biggest tip is to come up with a project, and figure out how you want to do it.

Like, you could make a “local weather display”.
This could be purely JavaScript, CSS and HTML, and it runs on a raspberry pi.
Or you could go down an embedded route, use an Arduino, program in c/c++ (even python, node, or rust).

Or perhaps you want to make a game, and use c#.
Or some mobile apps, using swift for iOS… Or kotlin for android. Or a language that can compile for both.
Maybe you just want to automate some things on Linux, and some bash scripts are just the ticket.

I would suggest learning the basics of programming using JavaScript/node, python or c#.
Then figure out a project, and make it happen.

If you’re coming in from zero, a good place to start is https://www.hedycode.com/

Hedy is a language specifically designed for learning. The things it does to ease the learning curve:

  • Comes with an online lesson program, so no setup (try it now!)
  • Has “levels” built-in to the language itself, to slowly introduce concepts and avoid accidentally running into harder/advanced things and getting stuck
  • As levels advance, it slowly becomes Python, a very popular and ubiquitous programming language, so no “switching to the real thing later”.
  • Is textual, so also no “switching to the real thing later” – it’s “real” from the start

Python, JavaScript, or (if you have a Mac) maybe Swift.

(Probably not Java or C++. They’re too big.)

But really it doesn’t matter much. CS snobs used to say that “BASIC causes brain damage” but a whole generation of programmers proved that to be wrong. The important part is to keep going and not stop. After you learn one language, learn another. There’s no such thing as a good programmer who only knows one language.

Lots of good technical starting points here. I don’t want to prematurely discourage you, but before you get into any code, evaluate your problem solving abilities. If that is an area you struggle in, work on that first, or at least in conjunction with programming basics.

I’ve worked with engineers who have all the code skills, but when faced with a complex issue, struggled to break it down into it’s simplest components and wound up with a messy, over-engineered solution.

particularly nasty situation, for real. in my experience, they know the bits of a framework, but they’ll never get to write a modest regex: they’ll have opinions on that too.

That’s why I don’t get tired recommending How to solve it to engineers of every level

Just ordered a copy!

Should have added a disclaimer: it was written by a mathematician in 1948, so it’s a bit of a dry read 😅

@hperrin@lemmy.world
link
fedilink
19
edit-2
1Y

It depends what you want to do.

Do you want to make cool desktop apps? Probably something like Rust or C#.

Do you want to do machine learning or scientific research applications? Definitely Python.

Do you want to make websites and web apps? Definitely HTML, CSS, and JavaScript (look up both Node.js and DOM API). You could also learn other server side languages like Ruby, Java, or PHP, but knowing browser side JS gets you half way to knowing server side JS, so Node would be easiest. If you want strict typing, you can learn TypeScript, which adds a strong typing system to JavaScript.

Do you want to make mobile apps? Probably Dart and Flutter. Also could learn Kotlin or Java for Android, or Swift or Objective-C for iOS.

Do you want to get into the nitty gritty of kernel level programming or embedded programming? Probably C and Rust.

Do you want to work on old software that runs mostly banking/enterprise/medical applications, but can land you a pretty lucrative job? Maybe COBOL, Fortran, or Ada.

Do you want to accomplish nothing of value? Visual Basic. (Just kidding.)

The most important thing you can do is to just jump into things and try them out. In my career, I’ve switched languages several times. If you’ve got the fundamentals down, learning a new language isn’t that hard, so just pick any language you want and learn the fundamentals with it. I’d recommend a strictly typed language at first, because it’s easier to wrap your head around what’s going on, but if that doesn’t feel right, don’t hesitate to switch to something else. Have fun with whatever you’re learning. :)

I would disadvise Rust for (most) desktop apps. There aren’t any GUI libraries yet, and the Qt bindings aren’t beginner-friendly yet.

Unless you just meant headless desktop apps, in which case Rust is my goto

There are GUI libraries. I personally use iced a lot. Even if it’s not v1.0 yet, it has many features. There are also bindings for other more common libraries such as GTK, QT and imgui. There’s also egui as a native rust alternative to imgui.

There’s Tauri. Basically Electron with Rust instead of Node.

SeriousBug
link
fedilink
English
31Y

You can make an app with Tauri without writing a single line of Rust though. Tauri lets you trigger most native functionality you might need from the JavaScript side. If that’s enough for what you are building then you don’t need to write any Rust. You could use a Rust web framework that compiles to WebAssembly, but you could also just use React or Svelte or whatever else.

There’s Tauri.

…and now your newbie has to onboard onto not only Rust (?!) but also HTML, CSS, and JavaScript to render “Hello World”.

@starman@programming.dev
link
fedilink
English
9
edit-2
1Y

C# is also very nice for server side and mobile apps as well as desktop. And game development too. To be honest, I would suggest learning C# to new programmers.

@Zeth0s@lemmy.world
link
fedilink
4
edit-2
1Y

First time I see “cool” and “c#” on the same sentence. I’ve always thought stereotype of c# is that it is the language for corporate, extremely uncool projects.

Just a comment. Cobol nowadays is heavily outsourced. There are jobs but not so lucrative as in the past. Fortran is still strong in scientific computing, but nowadays it is wrapped in python. All people I know who were strong in fortran (me included) are nowadays mostly working with python or scala, most of us on ML/AI related stuff.

I believe Fortran is still heavily used in weather forecasting.

@Zeth0s@lemmy.world
link
fedilink
2
edit-2
1Y

All scientific computing is built on top of fortran. Even cutting edge AI runs on top of high performance libraries written in fortran and c. Simply there is less need for fortran developers because high performance subroutines are wrapped to be called by higher level languages, such as python

Learning Java for android is still useful as a lot of legacy stuff is Java, but given Google has gone Kotlin first, and Kotlin is IMO easier and less error prone, dipping their toes in that first would probably be the better move.

You can always circle back to Java, you will need to understand it if you get serious about Android development.

Kotlin is IMO easier and less error prone

I’m no Kotlin expert, but I think Kotlin has a far more extensive core language and requires a heavier cognitive load to get up and running than Java.

It might have better developer experience and be less error-prone, but that comes at a price of admission that newbies have to pay.

Thanks for the correction, I added it to my post.

jadero
link
fedilink
21Y

I’m going to offer something a bit different. I’ll start by saying that I’ve never actually used it beyond a bit of tinkering and watching the presentation at the Strange Loop conference.a

https://www.hedycode.com/

The basic idea is that it’s actually pretty hard to do things wrong at the start, mostly because you just can’t do much. What you don’t get right has very clear descriptions of what you’ve done wrong, where, and even suggestions for corrections.

As you progress, you can do more and you have a very gradual transition to the more restrictive environment that most programming languages have.

By the time you are done, you are basically programming in Python, so further learning can take place using the myriad of courses, tutorials, and documentation available for that language.

I have no real experience with it beyond some basic tinkering. It is designed for classroom use, or at least on the assumption that there is a teacher or instructor available. That may not translate well to someone learning on their own.

Create a post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



  • 1 user online
  • 1 user / day
  • 1 user / week
  • 1 user / month
  • 1.11K users / 6 months
  • 1 subscriber
  • 1.21K Posts
  • 17.8K Comments
  • Modlog