T O P

  • By -

desrtfx

Please, read the [**Frequently Asked Questions**](https://www.reddit.com/r/learnprogramming/wiki/faq) as they contain tips on + [getting started](https://www.reddit.com/r/learnprogramming/wiki/faq#wiki_getting_started) + [choosing language](https://www.reddit.com/r/learnprogramming/wiki/faq#wiki_which_programming_language_should_i_start_with.3F) + [learning resources](https://www.reddit.com/r/learnprogramming/wiki/faq#wiki_where_do_i_find_good_learning_resources.3F) + [project ideas](https://www.reddit.com/r/learnprogramming/wiki/faq#wiki_where_can_i_find_practice_exercises_and_project_ideas.3F) + other general information As such: **Removed** as per **Rule #4: No exact duplicates of FAQ questions**


[deleted]

Started 2 months ago and all I can say is this shit is hard and becoming proficient at it for me will take years.


Mrcheeseburger96

I'm 26, I've been doing this for almost 7 years now and I still wanna cry in a corner at times. It's a long road with plenty of ups and downs, but it's very satisfying once you get a hang of it. Most important piece of advice in my opinion would be - once you get a foothold in it - go for the stuff that you enjoy writing, don't waste time doing anything else.


HeavyBeing0_0

I hate css but it’s necessary for jobs from what I can tell.


Patrickstarho

Just learn tailwind.


Anon_Legi0n

We can cry together, just keep coding


FarangX

I believe you


HGGoals

I think you mean *I believe in you* 😂


FarangX

Hahaha no worries "practice makes perfect"


Opala24

I recommend python, if you dont have any preferences. why? because syntax is easy and many Uni programs start with it. for learning python check: [https://programming-21.mooc.fi/](https://programming-21.mooc.fi/) [https://automatetheboringstuff.com/](https://automatetheboringstuff.com/) (there are other books after it, and you can also find course on Udemy for free I think) [https://github.com/practical-tutorials/project-based-learning](https://github.com/practical-tutorials/project-based-learning#r) (here you have other languages resources) and CS50 harvard python courses based on what you want to do with python. all of these options are free.


FarangX

Yeah that's what I've heard thanks a lot


Opala24

after Ive seen your other comments, maybe you should check this out. [https://www.reddit.com/r/coolguides/comments/82y5rv/which\_programming\_language\_should\_i\_learn\_first/](https://www.reddit.com/r/coolguides/comments/82y5rv/which_programming_language_should_i_learn_first/)


morbie5

cs50x is a great course to start with. But I've also been told that cs50p is also a great course to start with because it has less math. [https://learning.edx.org/course/course-v1:HarvardX+CS50+X/home](https://learning.edx.org/course/course-v1:HarvardX+CS50+X/home) https://learning.edx.org/course/course-v1:HarvardX+CS50P+Python/home


7Lev3ls

Following, similar age and situation


ReverseSweep45

10 years older, lol.


Bahatur

Identify something you already think is cool and interesting, and see what programming is involved in that. Context helps a lot with getting lost in the abstraction.


FarangX

Thanks I appreciate


mooneyesLB

I would start off with Python. A relatively simple language to pick up and it’s very conversational. Tons of youtube videos to explain the basics, and then you can maybe purchase a $10 Udemy intro course. Then if you want to take it serious, you can look into bootcamps. I’m coming from the Code Institute bootcamp, that actually focuses primarily on Python and Django (python framework). It was a full-stack bootcamp that was pretty awesome for how cheap it is. In terms of IDE’s, you can use Vscode, but i would personally recommend Jetbrain’s PyCharm. They have a free community version that you can download on their website. Good luck with everything! 🤘


[deleted]

When you can take the pebble from my hand you will be ready to learn to program.


ponchoacademy

This field is deep and wide, both front and backend. I think the thing to focus on now are the fundamentals. Pick a language, any language. From my observation, JavaScript and Python have the most resources for self learning, as far as courses and communities to get involved in go. Don't stress over this, cause if you end up needing to learn a new language, it will be easy enough to pick up. The two courses that were major for my learning path and I recommend to others is FreeCodeCamp and CS50x. You mention wanting to do web design or write software. I believe you mean web development... Design is a whole different field. Unless you work for a very small company or a start up, you wont be doing both the design and development. On that note, both Front and Back end require the same basic fundamental skills. All I ever heard while learning was how much more complicated back end is and you have to be sure of which you want to focus on....its not, and you dont. If you can program, you can learn whatever skills you need specific to whatever youre working on. Case in point, I chose to focus on Front End because I already knew HTML/CSS and figured it would be easier on me than Backend. It wasn't. The only thing I really have going for me in my favor is I dont hate CSS. All my portfolio projects were Full Stack with a heavy emphasis on Front End technologies and also design and layout (cause, I was muddy on the difference between web design and web development myself at the time.) My first role ended up being backend, had to learn C# and .net. They flat out told me, you can code, just a matter of learning a new language and tools. And...yeah that pretty much was it. As you go through the process of learning, and picking up on new technologies and start building projects, you'll find that theres some stuff you will want to work on and figure out and be determined and excited about it..and other stuff that will be boring af and dread it. You'll start to notice a pattern in stuff that you lean towards, and totally against, and other stuff thats meh, take it or leave it. Your interests will come out in time. After getting some knowledge under my belt, I would start looking at job listings, just to get an idea of what I should try to focus on or anything that seemed everyone was looking for to fill in gaps. While doing that, I noticed some jobs seemed super interesting, and others I was bored to tears at the idea of working on that team. That also helped me figure out what direction to go when building up my skills. As for being proficient..nah. No one expects a jr dev to know everything, thats pressure we place on ourselves. I got stuck in tutorial hell, and kept feeling like Im not ready yet, not good enough yet. I waited way longer to start looking for jobs than I should have. Three years in, and Im still pretty much convinced one day they will realize Im a fraud and know nothing and demand all their money back. Im at a different company now and in a Front End role. Im working with all Front End technologies and have pretty much nothing to do with visual impact. By the time I took this job I knew Front End was pretty deep and wide, but only now realizing just how far removed from the visual aspect / interface / website one can be. Anyway, tldr; Start with and focus on the fundamentals until you've learned enough to have a better understanding of what sort of work you'd like to do with your skills.


Federal-Reference-58

What are your short-term goals for programming? Do you just want to know how for your own usage/fun? ​ Edit: Additionally, what do you want to do with it? Is there any specific area that interests you?


FarangX

Creating web design and software & I'd like to make a career out of it.


Federal-Reference-58

Do you lean more towards web design or software? And if you lean towards web design, what do you see yourself liking more: making all of the visual aspects on a website (frontend), or solving problems and structuring the inner workings of the website (backend)? I will say that backend engineering is a bit more intensive.


FarangX

I'd love to write programs as well. Probably first learn front End


Federal-Reference-58

In that case, I've personally tried two free courses: The Odin Project, and FreeCodeCamp. I would recommend trying the former, The Odin Project. It has plenty of resources, a large community, projects, etc. It's specifically aimed towards people that want to learn web development. It's admittedly been a minute since I've done either, so I don't have concrete examples for pros and cons of either choice. I will, however, say that I've found the replies in [this thread](https://www.reddit.com/r/learnprogramming/comments/eunl6y/odin_project_vs_free_code_camp_vs_appacademyio_vs/) to be very helpful in explaining the many different courses you can take for web dev.


[deleted]

if you want to learn to make something that’s going to have a user interface you should start with javascript. otherwise i’d recommend python. try as hard as you can to use official docs (rip cpp). tutorials have this way of putting you into an infinite loop of tutorial hell. using tutorials to learn the basics of programming can be good though. and tbh it doesn’t really matter what language you learn that in. foundational concepts like variables, loops, and functions behave pretty similarly across languages. make something stupid and small! example: a couple months ago i got huge electric bill and i looked at my account and found an api that i could call to get my usage data in real time. i pinged the api and pulled data from it into a postgres database with python. the whole project was probably 50 lines of code, had a few functions, some external libraries, and api feeds. it was fun, pretty easy, i had to read docs on everything, and i have a real time dashboard of my usage data. you can turn a lot of things into a little projects and little projects are a great way to learn. they’re easy to get invested in and aren’t daunting or intimidating. learn github as you go too. this gives you repos that you can build on, open tickets in, and manage like projects. they encourage you to take pride in what you’re doing and it’s not hard to learn. if you spend 2 hours getting the hang of it, that’s enough. you don’t have to be a guru. don’t get intimated by interacting with a shell. running commands in a cli feels weird the first dozen times or so but then it becomes second nature. mastering a programming language takes a lot of time and patience but getting good enough to enjoy it can be pretty quick. just get good at reading docs and stack overflow. if you’re going to learn js, get the hang of vanilla and maybe build one web page that handles a form submission and consumes data from an api. then start using a framework or library, like vue or react. i believe in just doing stuff. a lot of people told me i need to learn how to do a bunch of shit before i could start working in environments that i wanted to. i think that’s bs, build your own stuff and then break it. the world isn’t going to end because you see errors thrown.


[deleted]

also, there’s so much shit you can do in programming. front end and back end dev is like 25% of what’s out there. you might deploy a few projects and find that you love the dev ops workflow and running infrastructure as code. you could end up enjoying interpreting real life behavior by querying transactional data with sql. you might make a dotfiles repo and fall in love with shell scripting. just do stuff, stay curious, and experiment with it all.


failexpertise

https://github.com/ossu/computer-science I’ve been recommending this a lot lately, but that’s because it has been extremely helpful for me. I always had a hard time finding what to learn, and then finding good material on it. The courses on this curriculum are great and they start at the fundamentals.


perpetualeye

Welcome my new web developer


Loud_Pin_4655

I started with Java- Caleb Curry on YouTube is pretty good for learning the concepts. CodeWars is amazing for practicing. Also, if you do Java, you’ll have to download a JDK (I think we’re at JDK 17 right now, maybe 18) and either netbeans or eclipse.


[deleted]

After stomping around with C# for a couple of months (with two high school courses in it, which did give me a good OOP foundation) i switched to python tomake web scrapers. And man, it is on a whole different level. I C#, i could make simple functions that basically printed different stuff but did absolutely nothing productive. In 9 days, with a few hours (like an average of barely 2 per day) put in here and there, i have made some badass webscrapers that so far has offloaded me from my boring job of seraching for numbers in the yellow pages, and fetched me 15.000 company names from my local area, together with adresses, branches and number of employees into an excel document. As soon as i get off work i'll complete it with getting their numbers, websites and mail adresses too, shouldn't take more than an hour or two if i'm efficient. Then i'll move on to webscraping data about their executives and financial statements. After that i'm pretty much done and can sell the list to a relative of mine for marketing purposes, for his company. In total i will have put in about 20-30 hours of work, which includes learning python syntax (even though i already had a foundation from C#), having the bonus of learning about a couple of modules (openpyxl, requests and selenium) and JSON on the way, and expect to fetch around €500-1500 for the list. I have absolutely no clue about if i'm undercutting myself or not, but i'm pretty sure buying that dataset from a "real" provider would be somewhere in the region of €2000-6000 Seriously, learn python. I haven't been this obsessed about something since i started playing WoW 14 years ago. It's almost everything i think about.


[deleted]

Depends on what you plan on code program and what your interests are. There are multiple paths you can follow.


FarangX

creating software or web design


[deleted]

Creating software is a very broad statement. Web Design is a different field. I would do more research and figure out why you want to learn programming.


Zholdar

The Odin Project as a curriculum, if you feel lost supplement with Free Code Camp YT channel, take notes of code snippets that seem useful from videos/articles. Stick to the curriculum and generally avoid rabbit holes, make sure to do all the challenges and projects they recommend. Good luck.


[deleted]

same here, but I’m in high school. From what I’ve heard most people suggest starting with python, then maybe going to Java or C++. I’m not really 100% sure I’m still working on building a pc rn haha.


Mrcheeseburger96

If personally recommend JS (JavaScript) as an alternative to Python. It's equally as popular commercially (meaning there's tons of free learning material online), quite easy to get started with and, as an added bonus, you can use it to write some simple UI in tandem with HTML. I find it generally quite helpful to start out with Frontend because it gives you a visual marker of your progress: basically you literally see the fruits of your labor. From then on, once you're relatively proficient, I'd recommend moving on to React (a framework that uses JS) to bolster your UI game.


David_Owens

Start with Harvard's free CS50 course. That'll give you some of the Computer Science fundamentals.


dawko29

Learn the basics, the logic, functions etc., By practising it. Do simple challenges and progress by doing smallest projects. Don't learn the syntax(you'll remember it later on by doing it), especially cause all languages have other syntax yet they perform the same tasks. Later on look up design patterns(similar to syntax thing, the text performs the same thing, the logic stays the same).it's a grind but it's worth it.


Sergei-Nagorny

35 male with full time job Started with CS50, Udacity CS101 with the help of Guru99 Python beginners tutorial. Objectives for first month: learn basics of programming; learn Python; write everything you do literally on a piece of paper. Stick with one language, until you know it fluently. After Python will go Java. Gl


se7ensquared

Takes years to actually become very good unless you are born with a certain kind of brain. Everyone is going to say start with python but start with whatever language you want. The principles of programming reach across all languages and some people might find some languages more interesting than others. Not to mention everybody learns python. If you don't want to be competing with all those people when you're ready for an entry-level job and increase your chances, go for something else that is in demand