Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

DrMotownMac

Contributor
Original poster
Jul 11, 2008
383
204
Michigan
I just started the Harvard University CS50x online MOOC (Massive Open Online Course) about 3 weeks ago and I think it's FANTASTIC! For a relative programming newbie (not counting learning some BASIC and Pascal in high school about 35 years ago, and one semester of FORTRAN in college), I am getting WAY MORE information and experience from this one course than I've gotten from any Udemy course, YouTube videos, or book I've ever tried in the past. Yes, Professor David Malan does not teach Swift or Xcode, so for you fellow future iOS and Mac programmers out there, this may seem like useless extra information. But what he DOES teach is HOW to code. And by that, I mean he teaches the logic behind programming and how to learn to find information as you go. The bulk of the course is spent learning C, but later on he gets into Python, SQL, HTML, CSS and JavaScript (I think the point being that once you learn C, you can pretty much learn ANY modern language pretty easily).

Anyway, the point of my post is to tell the newbies out there that if you REALLY want to learn how to program, this is one of the best introductory courses I've ever seen...and I've tested out quite a few of them. The trick is, though, that you need to really work through the labs and the problem sets for each lecture. It's not enough to simply sit through the videos and try to absorb it. In order to really understand how to program, you need to work through the PROGRAMMING. And as a warning, some of these problems are pretty simple, but many of them are VERY CHALLENGING. It requires a lot of time, hard work, and just plain THOUGHT. Sometimes, you really feel like a particular problem is painful just to wrap your brain around it. But when you figure it out, it's EXTREMELY SATISFYING!!! I now see why the coding gurus out there LOVE their jobs so much. It feels like you just climbed a mountain every time you solve one of these challenging programming assignments. So, I highly recommend this course for those of you who want to learn to code, and for those of you who are just looking for fun new challenge.

 
  • Like
Reactions: Caviar_X

casperes1996

macrumors 604
Jan 26, 2014
7,392
5,464
Horsens, Denmark
I've been saying this for ages. Even uploaded a YouTube video about "learning programming" rather than "learning Swift" or whatever.
When I do LeetCode algorithm challenges, my first step is solving the problem. Then I test my solution. This can happen in pretty much any language; C, C++, Java, Swift, it doesn't matter, really. Solving the problem is the harder part. The language is just syntax.
Though some languages still have pros and cons of course, you do not become a carpenter by learning to use a hammer.

Glad you're enjoying the course. Have good fun
 

DrMotownMac

Contributor
Original poster
Jul 11, 2008
383
204
Michigan
I've been saying this for ages. Even uploaded a YouTube video about "learning programming" rather than "learning Swift" or whatever.
When I do LeetCode algorithm challenges, my first step is solving the problem. Then I test my solution. This can happen in pretty much any language; C, C++, Java, Swift, it doesn't matter, really. Solving the problem is the harder part. The language is just syntax.
Though some languages still have pros and cons of course, you do not become a carpenter by learning to use a hammer.

Glad you're enjoying the course. Have good fun

Thanks! Yes, you have definitely been right all along. I think that I, and a lot of other people, have wrongly been looking for shortcuts to making apps without doing the work necessary to truly UNDERSTAND what goes on under the hood, so to speak.

Even the best Udemy courses teach people the mechanics of how to make an app... how to use Xcode, how to make buttons and labels on the screen, etc. But learning the LOGIC of the programming is everything, and if you don't understand that, then you're never really going to understand what you're doing.
 
  • Like
Reactions: casperes1996

Mean_Machine

macrumors newbie
Mar 13, 2021
9
2
Bitola, Macedonia
I just started the Harvard University CS50x online MOOC (Massive Open Online Course) about 3 weeks ago and I think it's FANTASTIC! For a relative programming newbie (not counting learning some BASIC and Pascal in high school about 35 years ago, and one semester of FORTRAN in college), I am getting WAY MORE information and experience from this one course than I've gotten from any Udemy course, YouTube videos, or book I've ever tried in the past. Yes, Professor David Malan does not teach Swift or Xcode, so for you fellow future iOS and Mac programmers out there, this may seem like useless extra information. But what he DOES teach is HOW to code. And by that, I mean he teaches the logic behind programming and how to learn to find information as you go. The bulk of the course is spent learning C, but later on he gets into Python, SQL, HTML, CSS and JavaScript (I think the point being that once you learn C, you can pretty much learn ANY modern language pretty easily).

Anyway, the point of my post is to tell the newbies out there that if you REALLY want to learn how to program, this is one of the best introductory courses I've ever seen...and I've tested out quite a few of them. The trick is, though, that you need to really work through the labs and the problem sets for each lecture. It's not enough to simply sit through the videos and try to absorb it. In order to really understand how to program, you need to work through the PROGRAMMING. And as a warning, some of these problems are pretty simple, but many of them are VERY CHALLENGING. It requires a lot of time, hard work, and just plain THOUGHT. Sometimes, you really feel like a particular problem is painful just to wrap your brain around it. But when you figure it out, it's EXTREMELY SATISFYING!!! I now see why the coding gurus out there LOVE their jobs so much. It feels like you just climbed a mountain every time you solve one of these challenging programming assignments. So, I highly recommend this course for those of you who want to learn to code, and for those of you who are just looking for fun new challenge.

Thanks for the recommendation and will defenetly take the course. Great contribution from your side. Cheers!
 

casperes1996

macrumors 604
Jan 26, 2014
7,392
5,464
Horsens, Denmark
I've been saying this for ages. Even uploaded a YouTube video about "learning programming" rather than "learning Swift" or whatever.
When I do LeetCode algorithm challenges, my first step is solving the problem. Then I test my solution. This can happen in pretty much any language; C, C++, Java, Swift, it doesn't matter, really. Solving the problem is the harder part. The language is just syntax.
Though some languages still have pros and cons of course, you do not become a carpenter by learning to use a hammer.

Glad you're enjoying the course. Have good fun
@iHorseHead
Out of curiosity... Why the "angry" reaction to this post just now? I can't really figure out what I wrote that might trigger that reaction ?
 

TiggrToo

macrumors 601
Aug 24, 2017
4,205
8,838
Sure, sure, but why the dislike

I'd argue that the choice of language is more than just "syntax".

First off, what is the programmer most comfortable in that's available to use? For example: a **** hot C++ Dev could possibly struggle to solve problems if told they had to use Python that they'd not used before but was told "that's what you must use".

Equally folk used to interpretive languages may not have the knowledge to write high performant code.

You're correct in saying that you need to plan the code out first, and yes that can be somewhat agnostic.

But it can also be fundamental in choosing the language up front.

In addition, some solutions lend themselves to functional languages, others to object orientated. And some - some need very low level solutions such as assembly.
 

DrMotownMac

Contributor
Original poster
Jul 11, 2008
383
204
Michigan
Well, I'm almost done with CS50 now, and I stand by what I said earlier. It's a GREAT introduction to programming for those who know nothing about it, and it's a solid foundation regardless of what computer language you might study in the future. So, unless you're in some kind of crazy rush to learn a particular language or IDE, I would recommend starting with this class. At the very least, you'll have a better idea of which direction you want to go in the future. For example, I was all set to study Swift and Xcode after finishing this class, but now I'm thinking of taking some additional courses in web programming. I haven't decided between front end or back end, so I think I'm going to try to tackle both of them.

Once again, I am FAR from an expert on anything, but this is my two cents.
 

casperes1996

macrumors 604
Jan 26, 2014
7,392
5,464
Horsens, Denmark
I'd argue that the choice of language is more than just "syntax".

First off, what is the programmer most comfortable in that's available to use? For example: a **** hot C++ Dev could possibly struggle to solve problems if told they had to use Python that they'd not used before but was told "that's what you must use".

Equally folk used to interpretive languages may not have the knowledge to write high performant code.

You're correct in saying that you need to plan the code out first, and yes that can be somewhat agnostic.

But it can also be fundamental in choosing the language up front.

In addition, some solutions lend themselves to functional languages, others to object orientated. And some - some need very low level solutions such as assembly.

Ah, yes, no doubt. I think the point I was trying to make perhaps wasn't expressed so well then. Different languages do have different strength/weaknesses/use-cases. My point was more that the fundamental mindset of "learning programming" is more valuable than a mindset of "learning Swift" or "learning Python". And I can say with high confidence that the C++ programmer will pick up Python faster than someone who's never touched code before, or the Python programmer C++ for that matter :)
 

grandM

macrumors 68000
Oct 14, 2013
1,508
298
All I want to say about this is universities are experienced in making learning hard and complicated. Most students give up. Many of these would actually succeed if professors would actually put in the work instead of throwing it all in an 10h course.

Some of these courses are well-made. The content is awesome. Yet many students suffer from headaches, mimick, throw in the towel. The best free course is Stanford's. Awesome material. I would not want to be served this treasure of knowledge the way it is.

If you are experienced it is a delicious dish.

Concerning that CS50 I actually subscribed to it. I paid to get certified. I glanced at it and decided to stop taking courses which make learning hard. Been there done that.

The OP is a doctor in medicine. Why do you think new doctors are interns for years?
 

DrMotownMac

Contributor
Original poster
Jul 11, 2008
383
204
Michigan
I guess everyone learns differently. The CS50 course is definitely challenging, but that challenge is what pushed me to learn the material. Yes, some of it I had to look up on the internet, some I had to read in books, and some I discussed with others online. But in the process, I learned much more than I ever learned from a Udemy course which simply walks you through tutorials, step by step. It all seems easy while you're doing it, but at the end, I always felt like I never really learned anything.

From my educational experience (and yes, with undergrad and graduate degrees in aerospace and biomedical engineering, and a medical degree, I have a lot of it), learning is always more effective when it's an active process and you're pushing yourself to understand the material. If it seems easy during the process, then you're probably not learning very much...at least not for the long run.

And P.S., internship (by definition, the first year of residency) is only ONE year. Residency is anywhere from 3 to 7 years, depending on your specialty. But then there's also 4 years of medical school BEFORE residency, and a subspecialty fellowship after residency, if you choose to go that way. It's a lot of years of training, but the reason is pretty straightforward...there is a S***LOAD of material to learn to be a competent medical doctor, and people's lives are on the line if you don't learn it well. So, it's a lot of years of school, but we do learn how to LEARN in the process. Programming and engineering are much more difficult to UNDERSTAND than medicine, but medicine is a lot more material to learn/memorize... A LOT MORE. And yes, it takes a lot of time to learn all of that stuff.
 

casperes1996

macrumors 604
Jan 26, 2014
7,392
5,464
Horsens, Denmark
I guess everyone learns differently. The CS50 course is definitely challenging, but that challenge is what pushed me to learn the material. Yes, some of it I had to look up on the internet, some I had to read in books, and some I discussed with others online. But in the process, I learned much more than I ever learned from a Udemy course which simply walks you through tutorials, step by step. It all seems easy while you're doing it, but at the end, I always felt like I never really learned anything.

From my educational experience (and yes, with undergrad and graduate degrees in aerospace and biomedical engineering, and a medical degree, I have a lot of it), learning is always more effective when it's an active process and you're pushing yourself to understand the material. If it seems easy during the process, then you're probably not learning very much...at least not for the long run.

And P.S., internship (by definition, the first year of residency) is only ONE year. Residency is anywhere from 3 to 7 years, depending on your specialty. But then there's also 4 years of medical school BEFORE residency, and a subspecialty fellowship after residency, if you choose to go that way. It's a lot of years of training, but the reason is pretty straightforward...there is a S***LOAD of material to learn to be a competent medical doctor, and people's lives are on the line if you don't learn it well. So, it's a lot of years of school, but we do learn how to LEARN in the process. Programming and engineering are much more difficult to UNDERSTAND than medicine, but medicine is a lot more material to learn/memorize... A LOT MORE. And yes, it takes a lot of time to learn all of that stuff.

Agreed basically. I don't at all think university tries. "making it hard to learn". On the contrary there are many resources made available to guide you through whatever obstacles you might see. It can be intensely stressful and hard at times, but that's because we want a full and deep understanding of at times inherently complex topics. I wouldn't say that getting to a point where you can write some code that does stuff is hard, but if you go for a full CS degree you bring a lot more with you than just knowing how to write code too.

Learning exactly what malloc does all the way down the chain gives a much greater ability to remember and use it properly in the future than just being told "write malloc(sizeof(struct Point));" (C code)
 
  • Like
Reactions: DrMotownMac

grandM

macrumors 68000
Oct 14, 2013
1,508
298
I guess everyone learns differently. The CS50 course is definitely challenging, but that challenge is what pushed me to learn the material. Yes, some of it I had to look up on the internet, some I had to read in books, and some I discussed with others online. But in the process, I learned much more than I ever learned from a Udemy course which simply walks you through tutorials, step by step. It all seems easy while you're doing it, but at the end, I always felt like I never really learned anything.

From my educational experience (and yes, with undergrad and graduate degrees in aerospace and biomedical engineering, and a medical degree, I have a lot of it), learning is always more effective when it's an active process and you're pushing yourself to understand the material. If it seems easy during the process, then you're probably not learning very much...at least not for the long run.

And P.S., internship (by definition, the first year of residency) is only ONE year. Residency is anywhere from 3 to 7 years, depending on your specialty. But then there's also 4 years of medical school BEFORE residency, and a subspecialty fellowship after residency, if you choose to go that way. It's a lot of years of training, but the reason is pretty straightforward...there is a S***LOAD of material to learn to be a competent medical doctor, and people's lives are on the line if you don't learn it well. So, it's a lot of years of school, but we do learn how to LEARN in the process. Programming and engineering are much more difficult to UNDERSTAND than medicine, but medicine is a lot more material to learn/memorize... A LOT MORE. And yes, it takes a lot of time to learn all of that stuff.
As medicine is concerned you actually endorse my viewpoint. The training at several stages is needed as this is where medical doctors LEARN the profession. Disasters would occur without. Honestly I am not impressed as how far medicine has come. Most of it is still remove and with luck replace. Or inserting a small pesticide hoping to trigger a response of the immune system. Gene therapy is probably the way to go and actually communicating with the body to repair itself. Don't take this as an insult.

Of course one needs to take on challenges. Universities however load off too much at once and then throw a huge challenge at you. Why? Because they do not want to invest the time of evaluating all of those intermediary learning steps. In a decent Udemy course that huge challenge is also demanded after many small and intermediary challenges...

You are totally right learning must be an active process. Throwing a huge amount of theory without an immediate challenge to a practical use case is what universities excel at. This has to do with the professor spending too few time in the actual learning process. He or she dumps the load and students are supposed to master it themselves.

As a result entire chapters are memorized by head or even skipped hoping it is not asked at the exam. This is not how teaching ought to be.
 
Last edited:

casperes1996

macrumors 604
Jan 26, 2014
7,392
5,464
Horsens, Denmark
Of course one needs to take on challenges. Universities however load off too much at once and then throw a huge challenge at you. Why? Because they do not want to invest the time of evaluating all of those intermediary learning steps. In a decent Udemy course that huge challenge is also demanded after many small and intermediary challenges...

I think this may perhaps just wildly depend on the university. I have weekly assignments building on the same projects often with weekly evaluations and discussions of progress, weekly TA sessions for all my courses, weekly meetings with professors or TAs and just loads of resources provided by the university to get evaluations, assistance, and everything.

A key feature of software development is also that you can train it and practice it without needing to be in residence like the medical profession you compare with. The software you write for fun at home or for university is the same basic workflow as the software you'd write in enterprise. You can't do an organ transplant, or even take a simple blood sample just from home, so the ways of building up the qualifications are just inherently different by the nature of things.
 

grandM

macrumors 68000
Oct 14, 2013
1,508
298
I think this may perhaps just wildly depend on the university. I have weekly assignments building on the same projects often with weekly evaluations and discussions of progress, weekly TA sessions for all my courses, weekly meetings with professors or TAs and just loads of resources provided by the university to get evaluations, assistance, and everything.

A key feature of software development is also that you can train it and practice it without needing to be in residence like the medical profession you compare with. The software you write for fun at home or for university is the same basic workflow as the software you'd write in enterprise. You can't do an organ transplant, or even take a simple blood sample just from home, so the ways of building up the qualifications are just inherently different by the nature of things.
I am actually pretty sure medical teaching could use a gigantic make-over starting from actual material e.g. a blood cell. They actually could start from a blood cell instead of a textbook. Then use that cell and dive into theory. I heard they are memorizing names of plants with 1 leaf, 2 leaves, and so on.

If this were to be true that is something from the past fatiguing talented students.
 

DrMotownMac

Contributor
Original poster
Jul 11, 2008
383
204
Michigan
Wait....what?!?
"...start from a blood cell instead of a textbook?"
"Memorizing names of plants?"

I have no idea what you're talking about. Starting from a blood cell wouldn't help anyone learn anatomy, biochemistry, pharmacology, neuroanatomy, physiology, etc. Maybe it would help a little with histology and hematology, but that's about it. Also, plants? I never learned the names of plants, except maybe in elementary school science, which I hated. So...what???

Personally, I would have loved if they made videos or fun interactive lessons on the computer to learn medicine rather than the boring textbooks. And we certainly did study blood cells under the microscope in histology and pathology, a LOT of blood cells, but I certainly would not have wanted to start there. Anyway, that's my two cents.
 

grandM

macrumors 68000
Oct 14, 2013
1,508
298
Wait....what?!?
"...start from a blood cell instead of a textbook?"
"Memorizing names of plants?"

I have no idea what you're talking about. Starting from a blood cell wouldn't help anyone learn anatomy, biochemistry, pharmacology, neuroanatomy, physiology, etc. Maybe it would help a little with histology and hematology, but that's about it. Also, plants? I never learned the names of plants, except maybe in elementary school science, which I hated. So...what???

Personally, I would have loved if they made videos or fun interactive lessons on the computer to learn medicine rather than the boring textbooks. And we certainly did study blood cells under the microscope in histology and pathology, a LOT of blood cells, but I certainly would not have wanted to start there. Anyway, that's my two cents.
The blood cell was an example...
And yes, start from reality and induce into theory
 
Last edited:

casperes1996

macrumors 604
Jan 26, 2014
7,392
5,464
Horsens, Denmark
And yes, start from reality and induce into theory

Reality and theory are two sides of the same coin though. And especially if we bring this back to software development the two are intensely correlated, as code is just formalised notation for theory and information, using syntax and semantics a machine can understand
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.