Can I get some advice for where to start with programming? I don't know what the fuck I'm doing...

Can I get some advice for where to start with programming? I don't know what the fuck I'm doing. Is python a good language to start with? I'm on a macbook too if that matters. I've looked into for many hours on my own, googling, downloading various applications that I don't know how to use, watching youtube videos, even writing down info. I still feel like i'm doing this wrong, I just want a good launching in point or advice on where to go and what to do. People who know what they are doing in the slightest still look like wizards to me.

Other urls found in this thread:

reddit.com/r/learnprogramming/wiki/faq#wiki_getting_started
edx.org/micromasters/software-development
edx.org/course/how-code-simple-data-ubcx-htc1x
cs.cmu.edu/~15131/f17/
lambdanative.org/
twitter.com/SFWRedditImages

reddit.com/r/learnprogramming/wiki/faq#wiki_getting_started

Learn bash, nigger.

macs suck for development
you either use their xcode ide
or get nothing
i think they run clang for C/C++ compiler
but it's a pain to include headers from standard libraries with xcode. they want you to use their shit, not the industry standard.
as for which language to start with, what are you wanting to program? Mobile apps? Real computer programs? Web apps?
For mobile apps, you will need to learn Java for Android and Swift for iOS.
For computer programs, only C or C++, nothing else.
For web apps, learn HTML, CSS, JavaScript, and PHP or ASP.NET.
If anyone bumps this thread after all this info, that's lame.

bump

Python is a good beginner language. Pick up a book on python for beginners (Google for suggestions). Maybe do a free online course if you like those. Watch videos on topics you don't understand from the book. If you stick to it, you will start learning faster and faster until you have a pretty solid grasp on the language and most importantly, programming principles.

Also, don't confuse yourself with IDEs and the like, a simple text editor will do for now.

buy a book or watch youtube videos, thenewboston is an amazing channel! Just start small, bit by bit! And never quit too.

I recommend starting JavaScript. It will teach you all the core elements of programming, if/else, iteration. It will run in any browser.

But a good way to start is to have a goal in what you want to achieve with programming.

Do you want to make video games? What kind. On what platform? It might make sense to learn Java if you're making phone apps.

I say have a goal and build your cirrculum from the minimum viable product of that. The goal isn't to program but to make some cool shit

python is bad for begginer
many will tell you its easy, its not easy
total beginner will never find out why people say python is easy

i would recomend starting with c/c++, after you get all fundamental shit you will be able to hop on any other language in a week. (99.9% that you won't use c++ as your language for your job (you need to be really good at it to get job))
but you will never do this if you start with python, you will have to relearn everything from scratch

why i know this?
i was fooled into learning python as first language, and i started feeling like i'm actually learning something only when i started c++

I think python is a great place to start. Very beginner friendly, lots of documentation, very easy to read, tons of modules to fit your every need.

Start out with simple programs like counting to 10 and fizzbuzz, these will teach you about loops, ranges, if statements, most importantly you'll become familiar with the syntax.

Try finding projects to keep yourself busy as well. Try writing a simple webscraper in bs4. This will teach you more about loops, importing modules, refining data, using PIP, and plenty of other stuff.

There are plenty of programming challenge websites out there for more project ideas, I think thats another good place to start. Programming is strange, for a while you will write code and it will be completely confusing but after a while it just kind of clicks and you start to get it. Dont be discouraged if you dont understand something right away.

I started with python and had no trouble at all when I switched to c and c++. It took me 3 months to get proficient in python and only a few weeks when I decided to learn C/C++

Honestly you will do this wrong, you will learn the wrong things and get everything wrong. It's just how it goes when self teaching. Start with python, as in learn anything python related until you re comfortable and then move onto something more complex. Perhaps study some mathematics to get an edge in the industry when it comes to beating other people at jobs.

other user here,
How do you prove that you know some mathematics to get an edge in the industry?

A lot of software engineering requires logical thinking and some CEO's of smaller software engineering companies get really critical in regards to your problem solving capabilities. I applied for an apprenticeship and being better at maths would have landed the job, they usually do test you in a follow up interview.

Perhaps OP isn't a fucking brainlet like me though

>mac
Found your problem. You'll never get anywhere, just give up now.

1. read SICP and learn scheme. it's a minimal language that lets you focus on understanding programming concepts.
2. read LYAH and learn haskell. its approach to programming will open your eyes as to why meme-languages like python, Java and sepples are contrived as fuck.
3. write a bunch of interpreters and compilers for different esolangs and abstract machines.

congratulations, you now know programming. if you've completed these steps you'll be able to use any other language, by having a reference open on the side.

to make you a well rounded programmer, learn a language for each paradigm:

4. a LISP-like language. already got that with scheme.
5. a functional language. already got that with haskell.
6. a procedural language. I recommend C, but you have to go all in, or it won't do you much good. read K&R and learn C. make sure to complete all the exercises. read the std. what is the cam? what are sequence points? etc.
7. an OO language. I don't really fucks with that anymore, but you could try ocaml, I guess.
8. a stack-based language. I recommend forth and going through the brilliant jonesforth

the next step is to learn about tooling and the environment, if you want your peers to think you have m4d h4xx0r sk1llz:

9. learn bash / zsh and all the user-land tools.
10. learn a terminal-based text-editor. I recommend vim, but lots of people prefer emacs.
11. start using a terminal-multiplexer, like tmux.
12. configure your system to your liking

>brainlet
the memes hurts people feelings
You just need to practice and time, you are not brainlet

if you want to get into low-level stuff (not recommended, a total waste of time, imo):

13. go through the hassle of installing gentoo on your system once, then immediately delete it. it will teach you tons about your system, but otherwise it's a meme-distro. I also recommend going through the LFS tutorial, if you're a masochist.
14. read APUE and learn about OSs. how does the boot-process work? how do file-systems work? how do LKMs work? how do schedulers work? etc.
15. read UNP and learn network programming. read RFCs and write a bunch of network code. stuff like packet sniffers, IRC clients, etc.

If you've completed even a tiny subset of this list you'll know where to look for answers for yourself.

good luck.

OP are you looking for a career or a job? If your ok with ceiling of about $35k per year, you can get away with a very limited knowledge. If your serious about it, follow the advice of this guy.

I'm serious. I want to be one of the elites, or if my intelligence prevents that at least very good.

don't know if you're still here but thanks for typing this all out for me.

After reading the second step I can already tell you that you will be in way over your head. Just pick from java, python, or go if you like memes. Transition to C and then C++, then pick what you want. Don't attempt haskell and stuff off the bat. The most important thing in programming is to understand how the languages operate overall, once you learn one it's easy to pickup most of the other ones. It's like learning Portuguese after Spanish. Haskell and such are much different however, just stick with the basics.

This is a software dev curriculum
Click on each program, they are all free to enroll edx.org/micromasters/software-development like this one edx.org/course/how-code-simple-data-ubcx-htc1x
Read through these notes too to understand emacs / vim / git / bash scripting cs.cmu.edu/~15131/f17/

At anytime during the courses find an open source project in either Scheme/Racket/Lisp, or Java and start fixing bugs, writing features for it.

Can also just do that "how to code" course and start making shit you want to build, like say you have an old phone laying around and you'd like to access it's sensors to do shit. Well then use this framework since you already are familiar with scheme from that course lambdanative.org/ and experiment building stuff you want. Maybe you want it to be able to accept voice commands for home automation. You then go learn how you can parse mic input, such as maybe recording it first then playing it back through one of your programs so it can interpret it as a temporary hacky fix. The point is you do active learning, so as you seek out information regarding whatever project you're building you are motivated to complete it, instead of a passive student just doing exercises and being disinterested.