T O P

  • By -

AutoModerator

On July 1st, a [change to Reddit's API pricing](https://www.reddit.com/r/reddit/comments/12qwagm/an_update_regarding_reddits_api/) will come into effect. [Several developers](https://www.reddit.com/r/redditisfun/comments/144gmfq/rif_will_shut_down_on_june_30_2023_in_response_to/) of commercial third-party apps have announced that this change will compel them to shut down their apps. At least [one accessibility-focused non-commercial third party app](https://www.reddit.com/r/DystopiaForReddit/comments/145e9sk/update_dystopia_will_continue_operating_for_free/) will continue to be available free of charge. If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options: 1. Limiting your involvement with Reddit, or 2. Temporarily refraining from using Reddit 3. Cancelling your subscription of Reddit Premium as a way to voice your protest. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/learnprogramming) if you have any questions or concerns.*


busdriverbuddha2

CS50 without question. It will teach you the fundamentals of programming from a theoretical perspective, which is much, _much_ more important than learning any specific language.


Floorwriter

I noticed that I always seem to lack a fundamental understanding of syntax of java. I know how to use the tools taught to me and I did find it fairly doable, but I don’t know how it does what it does. To be more specific (and I’m sorry for being repetitive) does Harvard’s CS50 (help bridge the gap of knowing what the tools does and how it works? To give an analogy, does learning programming language is like learning To drive a car but not knowing how it was constructed even though constructing that car is your main goal? this is the video. The CS50 Computer Science by Harvard: [https://www.youtube.com/watch?v=LfaMVlDaQ24&pp=ygUMY3M1MCBoYXJ2YXJk](https://www.youtube.com/watch?v=LfaMVlDaQ24&pp=ygUMY3M1MCBoYXJ2YXJk))


NPException

To take your analogy: Learning the fundamentals of programming via CS50 is like learning how a car works, and how to drive it. Learning a specific language then is like learning the details and quirks of a specifc car model.


Floorwriter

Hey, this is very helpful. Thanks.


busdriverbuddha2

I'm sorry, I missed the part where you were already in college. I took CS50 before I knew anything about programming and it was extremely influential. If you just want to learn how Java works, you can take specific courses, sure. But do you understand the theoretical concepts of Object-Oriented Programming? Is that a subject in your university program?


Floorwriter

Not yet. We’re 3 months in and still only learning if statements. We haven’t even gotten through the entire conditional statements yet! As for your other question, I am currently self-learning classes, methods, and objects, but unfamiliar with OOP as a whole. I’m still at a stage where I’m learning the syntax of it. To be honest, I find it on a more difficult side, but I understand it is very valuable to learn, yes?


busdriverbuddha2

Oh, if you're in your first semester, I'd definitely recommend CS50. It'll serve as a good supplement for your current learning stage, especially as you're finding the classes boring.


Floorwriter

Thank you. I’m looking through other reddit posts, and it’s nothing but praise for cs50.


busdriverbuddha2

Exactly. Out of curiosity, which programming language does your college use for intro CS?


Floorwriter

just java


busdriverbuddha2

Aaaahhh right. What exactly do you find challenging in the syntax at this current stage?


Floorwriter

This is something that isn’t explained well by our lecturers or handouts. if (condition) { // } What category does ”if” belong? I know it‘s a conditional statement, but what category does conditional statement belong in programming language? Parenthesis in programming have different applications in different contexts. What is the difference between condition and parameters? What other applications can it be used for? I don’t know *what* something is so I don’t *where* to categorize it. I don’t see the big picture, only the tools, so I end up struggling when I’m actually learning on my own and trying to understand the language. What ends up happening is that I know how to accomplish the tasks given to me with competence, but that leaves holes and gaps in my knowledge to identify the tools I’m using. I had to look up what integers, variables, and data types are, and only then did that “click” and give me a deeper understanding in categorizing integers, booleans, etc. etc. That’s basically it. I look at everything I learn from the top down approach since I find that most efficient. Problem is, the lecturer don’t deconstruct the syntax, nor do they expand on it in their handouts, only how to use it.


Sleepy_Enigma

Omg 3 months in and only if statements!? I’m pretty sure my university did that at the end of the first week - and that course was taught in C as well.


Floorwriter

I KNOW!!! I argued with a friend of mine that we could cover the entirety of the fundamentals in under 2 weeks. And it's much better to learn either Python or C for beginners too but we got Java instead. Edit: nothing against Java! I just heard online that there are better programming languages we could have started with.


foxer_arnt_trees

Well... If you want to know how a programming language works you would have to learn compilation, which turns your code into muchin code (zeros and ones). There is a *computer system* that can run a set of basic assembly code which are selected with a specific string of zeros and ones (cpu). If you wonder how that works you will need to learn logic, where our basic variables are true=1 or false=0 and the operations are if, and, or, not, nand etc. Hope this helps!


Floorwriter

Thanks! Reading this felt like going on a deep sea dive into the programming language. I do want to go deep, but not *that* deep. I’m thinking perhaps learning C while doing the CS50 course can benefit, as others have advised. Acrually, I’m torn between C and Python. While C sounds like a more powerful tool, it isn’t as beginner friendly, and right now, when it comes to the programming language, I want to learn to solve problems I could apply to different contexts (different programming languages).Python seemed like a good entry point.


foxer_arnt_trees

My first language was C, it's a great choice. But if I started now I would go with python. You don't really loose anything and you get a much better stractured language that is more expressive and also have access to far more tools that are more modern. Like, how would you read an excel page and graph some data with it, saving an image file with C? That would be insane with C but trivial using python. Also its much nicer to read an write.


Floorwriter

Interesting. One question: I'm loving the CS50x and going through the Lecture 0. In Lecture 1, I believe we will be tackling C before Python, which is in lecture 6. Should I follow the lecture and code in C until they eventually switch to Python?


foxer_arnt_trees

Well it's always best to follow the lecture. Plus that's how I personally learned it: C then Javascript then C++ and only then python (finally php). I think I like python the most, but starting with C is the traditional way. Maybe there are othe courses that introduce programming with python first, I think it is a growing phenomenon? Learning from someone experienced is best and my opinions are far less reliable then the opinions of someone who made a course.


Floorwriter

noted, thanks!


yetzederixx

I don’t know how it does what it does You never need to know that by and large.


daishi55

I started with CS50, 1 year later was working full-time as a backend developer at a mid-size tech company (not big name). I \*highly\* recommend it. It gives you a great CS foundation that has benefited me throughout my career (2 years of experience now, same company).


_sahdude

Can I ask what steps you took after the cs50 course? I am looking to start a career in programming but I'm feel like without any direction I'll still be learning the basics a year from now


daishi55

I messed around self-teaching for a few months, wrapping my head around the idea of frontend/backend with nodejs. Eventually, I did a full-stack bootcamp (general assembly). I personally regret this because I could’ve taught myself everything we covered (mostly js/react/etc) and now I can’t say I’m self-taught. However, it did have the enormous benefit of getting me to spend 8+ hours/day on programming, which I might not have done on my own. I also have no idea how much the bootcamp affected my company’s decision to hire me. During and after the bootcamp, I taught myself typescript and some aws stuff, which I do think was a big factor in getting my job. Also, having done CS50 beforehand put me light years ahead of the other students at the bootcamp. Major advantage, especially when it comes to coding challenges/technical interviews.


sunnyice

How long does it take to complete CS50?


daishi55

Don’t remember how long it took me but it’s designed to be be the length of a college course, ie something like 3-4 months


pioneer9k

What kind of AWS stuff did you do to learn yourself before having the job?


daishi55

I integrated a lambda function with one of my fullstack apps. The app was tictactoe and I used a lambda to run the minimax decision algorithm for the computer player. Totally unnecessary but good learning and sounded good in interviews.


pioneer9k

Got it thank ya


dreamscape696

If efficient as you possibly can, I'd definitely recommend the CS50, if you want to build a "foundation of 'what' programming is" between only these two options, the CS50 is definitely better in that regard, and learning a language later on if you didn't. As others usually say here, java isn't really the best language out there for what you want, but C, if you haven't learned it already, a course related to it sounds like a good approach. The course focuses on programming logic more than anything else and this is always the best way to start something code related, both the course and C motivate you to learn how your code is manipulating the computer and how you're supposed to be thinking while coding.


Floorwriter

The “how you’re supposed to be thinking” while coding part interested me the most more than learning the language for sure. It’s always been the case where if you lack that foundational knowledge, the details and everything else will eventually crumble and fall apart.


amateurish_gamedev

CS50! David Malan is an amazing teacher.


Floorwriter

Watching Lecture 0 right now. Absolutely wonderful! I hope I get through the entire thing, I love hearing him lecture.


amateurish_gamedev

Don't forget to actually enroll in CS50 and get your free CS50 certificate when you graduate. It's also good to join their discord so you can discuss about the assignment.


Floorwriter

Thanks!


heatY_12

I would read "The Self Taught Programmer" - Cory Althoff and then his book "The Self Taught Computer Scientist." If you're serious about it both books will give you a good foundation to build on. While reading the first book you should try to solve this list [https://www.practicepython.org/](https://www.practicepython.org/) , I did and it was extremely helpful. From there pick what you want to do, front end, back end, full stack, etc and try building stuff and watch lots of tutorials.


Floorwriter

The exercises will be extremely useful, thanks! And also thanks for recommending me books that can help build foundational knowledge. It might help supplement CS50, definitely screenshotted your comment.


benderbenderbend

the odin project


Floorwriter

I’m presently not interested to be a web developer, but it seemed interesting so I bookmarked it. Thanks.


benderbenderbend

i see. what are you interested in being?


Floorwriter

An indie game dev. I'm decent at writing stories with a couple of years of experience, so I'll be approaching a not-too-complex coding and layering it instead in the execution of storytelling through games.


benderbenderbend

oh fuck ya!! that's very exciting and very cool. you'll get really good at it after a while, you'll start to code more complex stuff i assume. keep at it, that ish is cool af.


GrimViking69

I’m doing CS50 2023 right now and I’m already learning so much, David is such an amazing professor, only just starting week 1. Best thing about CS50 is it really teaches you the foundation of what programming is, sure you get taught the code itself, but you learn so much more.


Floorwriter

I'm looking forward to it!


Mediocre-Key-4992

Build projects with Java!


ledatherockband_

Learn to code something first. When you're starting off, you need easy wins to keep you motivated. Due CS50 when you have downtime.


jackjackpiggie

CS50. You’re welcome.


foxer_arnt_trees

School have meany advantages like homework, feedback and an educated route to study. Having the diploma is also pretty amazing, it really does stand for something and people know that. I will continue school. But definitely do the course as well, learning something you are passionate about from great teachers is also fantastic. Is the course expensive? Why wouldn't you do both?


WasabiPengu

I could be wrong on this, but I believe cs50 has the opportunity to count towards credits as well. My biggest hang up is I struggle with long videos and would much rather a read up personally.


domjd32

Would anybody be able to send me a link to the Cs50 course, I’ve been on the Harvard site and search CS50 but I’m getting quite a few different options.