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

DrMotownMac

Contributor
Jul 11, 2008
385
213
Michigan
Hey buddy,

I enrolled on CS50 and watched the first video, which was superb.

Then, I didn't know what to do?

There were no exercises for me to complete, or any information re direction.

The next video was straight onto C, which left me completely lost.

Am I doing something wrong?
Yeah, the edX.org site is not the most intuitive, but you just need to click around to find what you're looking for.

I'm going to give you a step-by-step set of instructions. If you follow my instructions, you should be able to figure out where you made a wrong turn.

1. Set up a free account at www.edx.org. Click on the "Register" button to set up your account (at the top right of the window).

2. Log in to your account and search for the CS50 course. When you get to the course page, click the red "Enroll" button to enroll in the course.

3. I recommend you select "Audit This Course" rather than spend the $199 to pursue the verified certificate, for what you're doing.

4. When you get to the course home page, scroll all the way down and click on "Week 0" to see the very first lecture, as well as the "notes, slides, source code, subtitles, transcript, and more...." You will also see a link for "Problem Set 0." This is how you access the different lectures, along with all of the materials. Follow my video below. I show how to navigate the course, the lecture videos, the problem sets, etc. You can always go back to the course home page, then SCROLL TO THE BOTTOM OF THE PAGE (the critical step I imagine you neglected to do), and navigate to any of the lectures by clicking on the week you're interested in seeing.

 
  • Like
Reactions: The Cockney Rebel

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
Yeah, the edX.org site is not the most intuitive, but you just need to click around to find what you're looking for.

I'm going to give you a step-by-step set of instructions. If you follow my instructions, you should be able to figure out where you made a wrong turn.

1. Set up a free account at www.edx.org. Click on the "Register" button to set up your account (at the top right of the window).

2. Log in to your account and search for the CS50 course. When you get to the course page, click the red "Enroll" button to enroll in the course.

3. I recommend you select "Audit This Course" rather than spend the $199 to pursue the verified certificate, for what you're doing.

4. When you get to the course home page, scroll all the way down and click on "Week 0" to see the very first lecture, as well as the "notes, slides, source code, subtitles, transcript, and more...." You will also see a link for "Problem Set 0." This is how you access the different lectures, along with all of the materials. Follow my video below. I show how to navigate the course, the lecture videos, the problem sets, etc. You can always go back to the course home page, then SCROLL TO THE BOTTOM OF THE PAGE (the critical step I imagine you neglected to do), and navigate to any of the lectures by clicking on the week you're interested in seeing.

Thank you so much.

Your assistance is most appreciated.
 
  • Like
Reactions: DrMotownMac

lpolarityl

macrumors 6502a
Dec 1, 2009
516
319
Ohio
I bought my M1 MBP (512 16) because I wanted to learn to code.

However, I just don't seem to be able to grasp it. I started off with Swift, then moved on to Python, as I thought it would be an easier first language for a newcomer. However, as soon as I feel like I'm getting somewhere, I get stuck.

I've already boxed up my iMac, and put it into storage, and I really don't want to return this MBP as it is perfect in every way: No issues whatsoever.

If there are any coders in this forum, could you please offer some advice? I know there is a dedicated developer section in the forums, but I don't seem to be getting anywhere.

Any help would be highly appreciated.

Thank you in advance.
I can't recommend Paul Hudson enough when it comes to learning Swift. Check out his channel:

Paul Hudson - YouTube

As for grasping "how to code", it is only hard if you make it hard. Here is what I suggest:
  1. Pick a language to learn and dedicate time to learning the basics of that language. Try not to do too much. If you decide Swift is what you want to learn because you want to make things in the Mac/iOS space, then stick to that. If you want to make universal stuff, then go with Python. Whatever you decide, stick to it. Most object oriented languages act the same. Once you get the concepts down in one language, the basic fundamentals will translate to another language in most cases (this is all relative of course, but I think you can see what I mean here).
  2. You will not learn or grasp anything if you don't dedicate time to learning and actually understanding what you're trying to learn. You have to come to grips that learning to code is not easy. It takes time, tons of reading, tons of frustration, and eventually things will start to make sense. Very few people can learn to code quickly, it is nothing like riding a bike and there is nothing wrong with this reality. You'll quickly learn that stackoverflow is the best site ever made 😉 .
  3. Be OK with not understanding basic concepts. This is what helps you actually understand concepts. Re-read stuff, re-watch stuff, over and over. Eventually it will make sense.
  4. Pick a basic goal for a project (something achievable like a basic calculation app/project, grocery list, etc.) and try to accomplish it. It will be hard, things won't work or make sense, but you will learn the basics through the frustration.
I myself, am a system admin. I learned to write vbs and bash scripts years ago and eventually moved on to PowerShell. I wouldn't call vbs, bash or PowerSell "programming languages" (they are more of a scripting language; although PowerShell has greatly evolved), but the object oriented basics still apply. Having a grasp on those scripting languages has made understanding concepts in programming languages (Switft, Python, C/Obj C, and C#) a lot easier.
 
Last edited:

lpolarityl

macrumors 6502a
Dec 1, 2009
516
319
Ohio
I concur.

I’m just starting to think I’m not made for it?
No one is "made to code". It is very hard to become a successful software engineer let alone a decent one. It takes a lot of time and effort to become a seasoned developer/software engineer. Be OK with failure, its how you learn! 👍
Trust me, nothing feels better then compiling/running code that you wrote and seeing it do exactly what you imaginged it doing before you wrote a line of code. That feeling is what will help you learn and become "good at coding".
 
  • Like
Reactions: The Cockney Rebel

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
No one is "made to code". It is very hard to become a successful software engineer let alone a decent one. It takes a lot of time and effort to become a seasoned developer/software engineer. Be OK with failure, its how you learn! 👍
Trust me, nothing feels better then compiling/running code that you wrote and seeing it do exactly what you imaginged it doing before you wrote a line of code. That feeling is what will help you learn and become "good at coding".
Thanks, bud.
 
  • Like
Reactions: lpolarityl

DrMotownMac

Contributor
Jul 11, 2008
385
213
Michigan
So, The London Fella, your post inspired me to try to learn Swift and iOS programming again. I gave up on it a few years ago, more because of lack of time and motivation than anything else. So, I did a little digging, and I found what appears to be another great Udemy course by Dr. Angela Yu from The App Brewery in London (your home turf). She's actually a medical doctor who decided she enjoyed programming much more than practicing medicine (an inspiration to me, since I'm a disillusioned medical doctor myself). Anyway, I just started her course, but it seems to be great so far! It teaches more the mechanics of using Xcode to develop applications rather than the nuts and bolts of computer science, algorithms, etc. If your goal is really to make an app, this may be a shorter path for you than learning the kind of stuff in the CS50 course. On the other hand, if you have a lot of time, you may want to do both courses in parallel, since I imagine the CS50 course would help fortify what you learn in the Swift/iOS course. Normally, the course retails for $139.99, but it was on sale yesterday for $16.99 when I bought it.

Check it out: iOS & Swift - The Complete iOS App Development Bootcamp.

Remember, Udemy has sales all the time. If you set up a free account with them, they will send you their marketing emails pretty often, including notifications about when their courses go on sale (it seems like it's every few weeks). Do NOT pay the retail price!!
 
  • Like
Reactions: The Cockney Rebel

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
Hello again, buddy.

Thank you so much for the info.

I’m pleased I inspired you to resume your coding “dream” again. It makes me feel like I’m giving a little something back.

Wishing you well on your own journey.

Good luck!

PS: I just checked the course and it’s now £59.99, so I’ll pass.

PPS: I just watched the preview, and it looks like a great course.

* The more I look at that course, the better it looks. I’ll keep my eye on it, and hope it goes on sale. There’s a 30 day money back guarantee, so if it’s not for me then I can get a refund. I’m really tempted. What have you done so far on the course, and is it as good as it’s made out to be? *
 
Last edited:

DrMotownMac

Contributor
Jul 11, 2008
385
213
Michigan
Hello again, buddy.

Thank you so much for the info.

I’m pleased I inspired you to resume your coding “dream” again. It makes me feel like I’m giving a little something back.

Wishing you well on your own journey.

Good luck!

PS: I just checked the course and it’s now £59.99, so I’ll pass.

PPS: I just watched the preview, and it looks like a great course.

* The more I look at that course, the better it looks. I’ll keep my eye on it, and hope it goes on sale. There’s a 30 day money back guarantee, so if it’s not for me then I can get a refund. I’m really tempted. What have you done so far on the course, and is it as good as it’s made out to be? *
Thanks, man.

Well, since I just started yesterday, I'm only on Lecture 19 (out of 541), so I have quite a way to go! But, I will say that once you get through the first section of introductory stuff, she gets going right away with the workings of Xcode and building an interface for your first app! It's clearly much more about how to build an app than how to program a computer. But if you learn programming (like from CS50) while you do this at the same time, I think you should get a pretty good foundation for building apps later.

Meanwhile, I suggest you register an account with Udemy.com so you can get on their email list...that's how I find out about coupons and sales. You made the right choice by not paying the £59.99. It should be much cheaper than that.

Feel free to DM me when you get started...I'd like to have a friend studying it at the same time as me. I need all the motivation I can get to complete this monster of a class!
 
  • Like
Reactions: The Cockney Rebel

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
Thanks, man.

Well, since I just started yesterday, I'm only on Lecture 19 (out of 541), so I have quite a way to go! But, I will say that once you get through the first section of introductory stuff, she gets going right away with the workings of Xcode and building an interface for your first app! It's clearly much more about how to build an app than how to program a computer. But if you learn programming (like from CS50) while you do this at the same time, I think you should get a pretty good foundation for building apps later.

Meanwhile, I suggest you register an account with Udemy.com so you can get on their email list...that's how I find out about coupons and sales. You made the right choice by not paying the £59.99. It should be much cheaper than that.

Feel free to DM me when you get started...I'd like to have a friend studying it at the same time as me. I need all the motivation I can get to complete this monster of a class!
Glad you seem to be enjoying it, thus far.

I‘m definitely going to keep my eye on it. They’ll probably have a January sale, so fingers crossed.

I’ve always looked at the free courses on Udemy, so I thank you again for bringing this one to my attention. It seems like it’s a coding boot camp, but studying from home.

I concur, would be nice to study along side of you. We could help each other along the way and who knows, between us we could come up with the next killer app :apple:.

Thanks again.
 
  • Like
Reactions: DrMotownMac

SRLMJ23

macrumors 68020
Jul 11, 2008
2,312
1,416
Central New York
I bought my M1 MBP (512 16) because I wanted to learn to code.

However, I just don't seem to be able to grasp it. I started off with Swift, then moved on to Python, as I thought it would be an easier first language for a newcomer. However, as soon as I feel like I'm getting somewhere, I get stuck.

I've already boxed up my iMac, and put it into storage, and I really don't want to return this MBP as it is perfect in every way: No issues whatsoever.

If there are any coders in this forum, could you please offer some advice? I know there is a dedicated developer section in the forums, but I don't seem to be getting anywhere.

Any help would be highly appreciated.

Thank you in advance.

I would say install Swift Playgrounds as it will teach you to code but in a visual way as well.

I would also say if you are going to code for the Mac exclusively, why not use Apple's own programming language? If coding for multiple OS's like Mac and Windows, then I get not wanting to use Swift, would make no sense at all, and would go with Python. So it depends on what you plan on coding for.

Just my two cents. Have a great, Merry Christmas and a hopefully way better Happy New Year, Godspeed.

:apple:
 
  • Like
Reactions: The Cockney Rebel

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
I would say install Swift Playgrounds as it will teach you to code but in a visual way as well.

I would also say if you are going to code for the Mac exclusively, why not use Apple's own programming language? If coding for multiple OS's like Mac and Windows, then I get not wanting to use Swift, would make no sense at all, and would go with Python. So it depends on what you plan on coding for.

Just my two cents. Have a great, Merry Christmas and a hopefully way better Happy New Year, Godspeed.

:apple:
Thanks for the advice, my friend.

Also wishing you a wonderful Christmas, and an exciting New Year!
 

SRLMJ23

macrumors 68020
Jul 11, 2008
2,312
1,416
Central New York
I can't recommend Paul Hudson enough when it comes to learning Swift. Check out his channel:

Paul Hudson - YouTube

As for grasping "how to code", it is only hard if you make it hard. Here is what I suggest:
  1. Pick a language to learn and dedicate time to learning the basics of that language. Try not to do too much. If you decide Swift is what you want to learn because you want to make things in the Mac/iOS space, then stick to that. If you want to make universal stuff, then go with Python. Whatever you decide, stick to it. Most object oriented languages act the same. Once you get the concepts down in one language, the basic fundamentals will translate to another language in most cases (this is all relative of course, but I think you can see what I mean here).
  2. You will not learn or grasp anything if you don't dedicate time to learning and actually understanding what you're trying to learn. You have to come to grips that learning to code is not easy. It takes time, tons of reading, tons of frustration, and eventually things will start to make sense. Very few people can learn to code quickly, it is nothing like riding a bike and there is nothing wrong with this reality. You'll quickly learn that stackoverflow is the best site ever made 😉 .
  3. Be OK with not understanding basic concepts. This is what helps you actually understand concepts. Re-read stuff, re-watch stuff, over and over. Eventually it will make sense.
  4. Pick a basic goal for a project (something achievable like a basic calculation app/project, grocery list, etc.) and try to accomplish it. It will be hard, things won't work or make sense, but you will learn the basics through the frustration.
I myself, am a system admin. I learned to write vbs and bash scripts years ago and eventually moved on to PowerShell. I wouldn't call vbs, bash or PowerSell "programming languages" (they are more of a scripting language; although PowerShell has greatly evolved), but the object oriented basics still apply. Having a grasp on those scripting languages has made understanding concepts in programming languages (Switft, Python, C/Obj C, and C#) a lot easier.

This is a great post, and I agree 100% with everything that @lpolarityl said.

You will get frustrated, tired, and even mad/angry, but as he said that is how you will learn. Once you start to get the basics, it can become almost addicting though because you will finally be like "Yes, I have it down, now let me create the best new killer app on the App Store!!!" Definitely give Paul Hudson a try!

:apple:
 

s66

Suspended
Dec 12, 2016
472
661
I learned to program on a HP-41C, moved from there to a TRS-80's BASIC, Apple II's BASIC (all while in high school) then learned FORTRAN, an artificial machine language, IBM 360 machine language, JCL, LISP, PROLOG, Smalltalk, ALGOL, COBOL, ADA, SQL (DB2), Pascal, C and a few dozen more (all at the university), after that: tcl/tk, C++, sh, csh, perl, PHP, javascript, java, python, and a load more I didn't remember just now.
It's not about bragging: it's about showing you can learn a ton of programming languages without much effort. Back at the university we got taught a new one for a while every 2 to 3 weeks - and had to deliver actual working results in said language at the end of that time, every time. It doesn't take more time than that to learn a new programming language once you have the base skills and knowledge.
Which of those have I used in the last decades: just a very few: PHP, javascript, MySQL, sh because they were the tools needed to do what I did as an out of control "hobby" (meant like the Apple TV ;-) ).
For the rest of my profession: knowing about programming was important, very important to me professionally, but coding in any language has not been part of my job for a very, very long time.

This just to say: don't worry about picking a language - any language will do.

Which language is truly a non-issue: once you know the principles themselves they recur all the time. The coding in itself is truly the trivial task.
The hardest part of coding is dealing with the huge amount of libraries that you have to know before you can do things in some of the modern OO (Object Oriented) languages. This is in part experience on what to expect to exist and then "just" using those by looking them up as you go - or for those with more experience in the specific language and set of libraries of available stuff: they can skip that lookup phase (in part), and might know things that are available you didn't expect yourself. It's no big deal. But with the Internet you can find it all in a breeze.

So the basis of programming is the more important part in order to get it right.
Any language will do. What's more important is to have a guide, a good book that teaches you these principles over any specific language.
It's about the principles that are underlying so that you truly understand what Classes, Objects, Functions, Methods, Inheritance, etc. are, and how to use them and when. That you understand scope of variables, know what pointers are, how stuff can be passed by reference or by copying, how memory management is done (even in languages that make you not bother with it as they do it for you), how security needs to be baked in from the start, ... all of that is dozens of times more important than the actual language used.

In the end: pick one that's a bit suitable for what you want to do, then get a few books teaching both the basics of it as well as the more advanced Object Oriented stuff.
E.g.
If you want to code for a web front end: javascript, PHP, MySQL etc. could be your tools of choice.
If you seek to write apps for iOS: swift.
...
If you seek employment: java is always popular (though I prefer to hire those that don't know java over those that know it well - probably just too many bad experiences there though)

One important fallacy I've seen people stumble upon: stick to one language till you know it. Do not quit hoping another is easier. It's not the language, it's the principles of programming that you're struggling with so get a better book/tutorial for the language you picked.
 
Last edited:

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
I learned to program on a HP-41C, moved from there to a TRS-80's BASIC, Apple II's BASIC (all while in high school) then learned FORTRAN, an artificial machine language, IBM 360 machine language, JCL, LISP, PROLOG, Smalltalk, ALGOL, COBOL, ADA, SQL (DB2), Pascal, C and a few dozen more (all at the university), after that: tcl/tk, C++, sh, csh, perl, PHP, javascript, java, python, and a load more I didn't remember just now.
It's not about bragging: it's about showing you can learn a ton of programming languages without much effort. Back at the university we got taught a new one for a while every 2 to 3 weeks - and had to deliver actual working results in said language at the end of that time, every time. It doesn't take more time than that to learn a new programming language once you have the base skills and knowledge.
Which of those have I used in the last decades: just a very few: PHP, javascript, MySQL, sh because they were the tools needed to do what I did as an out of control "hobby" (meant like the Apple TV ;-) ).
For the rest of my profession: knowing about programming was important, very important to me professionally, but coding in any language has not been part of my job for a very, very long time.

This just to say: don't worry about picking a language - any language will do.

Which language is truly a non-issue: once you know the principles themselves they recur all the time. The coding in itself is truly the trivial task.
The hardest part of coding is dealing with the huge amount of libraries that you have to know before you can do things in some of the modern OO (Object Oriented) languages. This is in part experience on what to expect to exist and then "just" using those by looking them up as you go - or for those with more experience in the specific language and set of libraries of available stuff: they can skip that lookup phase (in part), and might know things that are available you didn't expect yourself. It's no big deal. But with the Internet you can find it all in a breeze.

So the basis of programming is the more important part in order to get it right.
Any language will do. What's more important is to have a guide, a good book that teaches you these principles over any specific language.
It's about the principles that are underlying so that you truly understand what Classes, Objects, Functions, Methods, Inheritance, etc. are, and how to use them and when. That you understand scope of variables, know what pointers are, how stuff can be passed by reference or by copying, how memory management is done (even in languages that make you not bother with it as they do it for you), how security needs to be baked in from the start, ... all of that is dozens of times more important than the actual language used.

In the end: pick one that's a bit suitable for what you want to do, then get a few books teaching both the basics of it as well as the more advanced Object Oriented stuff.
E.g.
If you want to code for a web front end: javascript, PHP, MySQL etc. could be your tools of choice.
If you seek to write apps for iOS: swift.
...
If you seek employment: java is always popular (though I prefer to hire those that don't know java over those that know it well - probably just too many bad experiences there though)

One important fallacy I've seen people stumble upon: stick to one language till you know it. Do not quit hoping another is easier. It's not the language, it's the principles of programming that you're struggling with so get a better book/tutorial for the language you picked.
Wow, such a detailed response.

Thank you so much for all of your advice. It has all been taken onboard, and respected.

I’m staying with my nan over Christmas, so I’ll be away from my computer. That will give me time to reflect.

I really want to do this. And your reply had really spurred me on.

Thank you so much, and have a very merry Christmas.

Best wishes ...
 

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
Thanks, man.

Well, since I just started yesterday, I'm only on Lecture 19 (out of 541), so I have quite a way to go! But, I will say that once you get through the first section of introductory stuff, she gets going right away with the workings of Xcode and building an interface for your first app! It's clearly much more about how to build an app than how to program a computer. But if you learn programming (like from CS50) while you do this at the same time, I think you should get a pretty good foundation for building apps later.

Meanwhile, I suggest you register an account with Udemy.com so you can get on their email list...that's how I find out about coupons and sales. You made the right choice by not paying the £59.99. It should be much cheaper than that.

Feel free to DM me when you get started...I'd like to have a friend studying it at the same time as me. I need all the motivation I can get to complete this monster of a class!
What’s the learning curve like, buddy (with this course in particular)?

You say that she ramps up, after the initial lessons? Do you think a complete beginner would be able to keep up?

Thanks again for putting this course on my radar. If it goes on sale, I think I’ll definitely go for it.

Wishing you a Merry Christmas for tomorrow.
 

DrMotownMac

Contributor
Jul 11, 2008
385
213
Michigan
What’s the learning curve like, buddy (with this course in particular)?

You say that she ramps up, after the initial lessons? Do you think a complete beginner would be able to keep up?

Thanks again for putting this course on my radar. If it goes on sale, I think I’ll definitely go for it.

Wishing you a Merry Christmas for tomorrow.

When I said that she ramps up after the initial section, I meant to say the initial section is more of an orientation, like how to install Xcode, how best to navigate through the lessons, etc. The second section (which I just completed) is actually building and running your first iOS app. Granted, it's the "Hello, World" of iOS apps (in that it's as simple as you can possibly imagine), but it gives you an idea of how the process of app development works and the very basics on how to use Xcode. It was simple to build the app in Xcode and run it on the iPhone Simulator from Xcode. There's an app on the Mac that runs from within Xcode that looks and feels like an iPhone screen running on your Mac. The slightly more challenging step for me was connecting my actual iPhone 12 to the Mac, and then installing and running the app on my iPhone. But I have DONE it and it works flawlessly!

Basically, anyone who can follow simple step-by-step instructions should be able to build this first app. There is no "programming" whatsoever. It's more about learning how to manage images on the phone, make an icon, and getting everything to install and run correctly. No variables, no if-then statements, no while loops, etc. I'm hoping that she mixes in some Swift programming, along with basic computer science theory (like sorting algorithms, etc.) into future lessons. From what I've heard, that's exactly what she does. The great thing about this course is that each lesson is on about 10 minutes long. The bad thing is that it means there are over 500 lessons, so you're only getting a little nibble at a time. But I believe if I can get through the entire course, I will at least know HOW to build an app. I think the harder parts will be in (a) coming up with a great idea for an at least somewhat original app, and (b) understanding how to find answers to much more complicated programming questions that will inevitably come up along the way.

But the bottom line is that I believe this course is ideal for a true programming novice who is primarily interested in making an iOS app which can be sold (or distributed) on the App Store. If you are more interested in learning computer science in general, I think I'd probably start with a course like Harvard's CS50. I'm starting to agree with others on this forum who have said that Python and other languages are a waste of your time if you're interested in making an iOS app. If you want to make an Android app, I guess I would take a similar course in Android app development and learn Java rather than Swift.
 
  • Like
Reactions: The Cockney Rebel

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
When I said that she ramps up after the initial section, I meant to say the initial section is more of an orientation, like how to install Xcode, how best to navigate through the lessons, etc. The second section (which I just completed) is actually building and running your first iOS app. Granted, it's the "Hello, World" of iOS apps (in that it's as simple as you can possibly imagine), but it gives you an idea of how the process of app development works and the very basics on how to use Xcode. It was simple to build the app in Xcode and run it on the iPhone Simulator from Xcode. There's an app on the Mac that runs from within Xcode that looks and feels like an iPhone screen running on your Mac. The slightly more challenging step for me was connecting my actual iPhone 12 to the Mac, and then installing and running the app on my iPhone. But I have DONE it and it works flawlessly!

Basically, anyone who can follow simple step-by-step instructions should be able to build this first app. There is no "programming" whatsoever. It's more about learning how to manage images on the phone, make an icon, and getting everything to install and run correctly. No variables, no if-then statements, no while loops, etc. I'm hoping that she mixes in some Swift programming, along with basic computer science theory (like sorting algorithms, etc.) into future lessons. From what I've heard, that's exactly what she does. The great thing about this course is that each lesson is on about 10 minutes long. The bad thing is that it means there are over 500 lessons, so you're only getting a little nibble at a time. But I believe if I can get through the entire course, I will at least know HOW to build an app. I think the harder parts will be in (a) coming up with a great idea for an at least somewhat original app, and (b) understanding how to find answers to much more complicated programming questions that will inevitably come up along the way.

But the bottom line is that I believe this course is ideal for a true programming novice who is primarily interested in making an iOS app which can be sold (or distributed) on the App Store. If you are more interested in learning computer science in general, I think I'd probably start with a course like Harvard's CS50. I'm starting to agree with others on this forum who have said that Python and other languages are a waste of your time if you're interested in making an iOS app. If you want to make an Android app, I guess I would take a similar course in Android app development and learn Java rather than Swift.
Thanks for the length response, bud.

I’m hoping the course will go on sale, then I’ll probably enrol.

You seem to be enjoying it, and there appears to be a lot of content.

I like the fact that the tutor runs an actual boot camp, so I imagine the course is well organised.
 
  • Like
Reactions: DrMotownMac

bousozoku

Moderator emeritus
Jun 25, 2002
15,926
2,141
Lard
I would suggest trying two games: Rabbids Coding and Human Resource Machine.

Both explore coding in a very simple way.
 

thekev

macrumors 604
Aug 5, 2010
7,005
3,343
Python is a great place to get a feel for the basics: functions/methods, basic var handling, control flow, code structure and organization. You can start with any text editor and a couple of terminal commands, it's interpreted so you don't even have to deal with a compilation phase :)

Python actually exposes a lot of nice things in a way that I would call more helpful at that stage than something like C++ or Java. It has language level support for clean, nestable iterator concepts (zip, enumerate, range). It doesn't directly expose loop counting variables. It contains much less undefined behavior than a C like language. I can still find a few cases where unpacking mistakes run into poorly defined behavior in CPython and probably the others, but there aren't anywhere near as many. Most of these things raise explicit "Value" or "Runtime" errors rather than crashing possibly far from the statement(s) that caused the problem.

It also has fairly simple package management, although I have needed to explicitly specify versions to pip on a few occasions when dealing with old, poorly maintained packages.

I would note that a compilation phase is still there. Interpreters generally act like machines and have their own assembly opcodes, so a compiler has to translate from high level source to something that can be interpreted as sequences of atomic steps from the user perspective.

Avoid getting into any kind of framework or IDE. That's the problem with Swift, is people jump into trying to understand the language basics, plus the iOS SDKs, __plus__ a vastly complex IDE (integrated dev environment). Python is a general purpose language, but if you dig on it, you can always move on to something like a Web Framework for Python, for example, Flask or Django.

He mentioned wanting to do iOS development, so he's likely to bump into that stuff at some point. Later would be better though.
 
  • Like
Reactions: The Cockney Rebel

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
Python actually exposes a lot of nice things in a way that I would call more helpful at that stage than something like C++ or Java. It has language level support for clean, nestable iterator concepts (zip, enumerate, range). It doesn't directly expose loop counting variables. It contains much less undefined behavior than a C like language. I can still find a few cases where unpacking mistakes run into poorly defined behavior in CPython and probably the others, but there aren't anywhere near as many. Most of these things raise explicit "Value" or "Runtime" errors rather than crashing possibly far from the statement(s) that caused the problem.

It also has fairly simple package management, although I have needed to explicitly specify versions to pip on a few occasions when dealing with old, poorly maintained packages.

I would note that a compilation phase is still there. Interpreters generally act like machines and have their own assembly opcodes, so a compiler has to translate from high level source to something that can be interpreted as sequences of atomic steps from the user perspective.



He mentioned wanting to do iOS development, so he's likely to bump into that stuff at some point. Later would be better though.
Thanks for the advice.

It’s much appreciated.
 
  • Like
Reactions: thekev

ADGrant

macrumors 68000
Mar 26, 2018
1,685
1,058
I started with Swift, because I wanted to code iOS apps.

The reason I moved onto Python is because I thought I'd start with something a bit more high level (language) then move on from there. I found Swift to be very convoluted.

I'm not making excuses; I just find the whole thing so difficult.
I don't think Python is more high level than Swift. It's a scripting language that is simpler than Swift but at a cost. Swift has many more features and can be used to build faster runtimes.

I am currently teaching my 10 year old daughter programming using the Swift Playground app on the Mac (available for the iPad too of course). I think it is an excellent place to start, no Xcode required.
 

GrumpyCoder

macrumors 68020
Nov 15, 2016
2,073
2,653
I'm teaching computer science at a university (bachelor/master students). While I have not taught entry level courses the past few years, I see that students have problems with the basics all the time. The basics are usually not syntax related, but the concept of solving a problem on an algorithmic level. I can only recommend to sit down with a piece of paper and a pen and solve the problem first. Use pseudo code or your "own" language, draw a diagram if it helps. Once you're done, translate this to actual code. So in the end, it doesn't matter what language you start with as long as you can solve the problem first and understand concepts of programming, such as variables, constants, loops, functions, etc. You can look up the syntax later.
 

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
I'm teaching computer science at a university (bachelor/master students). While I have not taught entry level courses the past few years, I see that students have problems with the basics all the time. The basics are usually not syntax related, but the concept of solving a problem on an algorithmic level. I can only recommend to sit down with a piece of paper and a pen and solve the problem first. Use pseudo code or your "own" language, draw a diagram if it helps. Once you're done, translate this to actual code. So in the end, it doesn't matter what language you start with as long as you can solve the problem first and understand concepts of programming, such as variables, constants, loops, functions, etc. You can look up the syntax later.
Hello, and thank you for the advice.

I think I just have to keep going, even if I have to go over the same thing ten times, I’m sure there must be a point where it “sticks” and makes sense?

Thanks again, and happy holidays.
 

The Cockney Rebel

macrumors 68020
Original poster
Nov 16, 2018
2,425
2,922
When I said that she ramps up after the initial section, I meant to say the initial section is more of an orientation, like how to install Xcode, how best to navigate through the lessons, etc. The second section (which I just completed) is actually building and running your first iOS app. Granted, it's the "Hello, World" of iOS apps (in that it's as simple as you can possibly imagine), but it gives you an idea of how the process of app development works and the very basics on how to use Xcode. It was simple to build the app in Xcode and run it on the iPhone Simulator from Xcode. There's an app on the Mac that runs from within Xcode that looks and feels like an iPhone screen running on your Mac. The slightly more challenging step for me was connecting my actual iPhone 12 to the Mac, and then installing and running the app on my iPhone. But I have DONE it and it works flawlessly!

Basically, anyone who can follow simple step-by-step instructions should be able to build this first app. There is no "programming" whatsoever. It's more about learning how to manage images on the phone, make an icon, and getting everything to install and run correctly. No variables, no if-then statements, no while loops, etc. I'm hoping that she mixes in some Swift programming, along with basic computer science theory (like sorting algorithms, etc.) into future lessons. From what I've heard, that's exactly what she does. The great thing about this course is that each lesson is on about 10 minutes long. The bad thing is that it means there are over 500 lessons, so you're only getting a little nibble at a time. But I believe if I can get through the entire course, I will at least know HOW to build an app. I think the harder parts will be in (a) coming up with a great idea for an at least somewhat original app, and (b) understanding how to find answers to much more complicated programming questions that will inevitably come up along the way.

But the bottom line is that I believe this course is ideal for a true programming novice who is primarily interested in making an iOS app which can be sold (or distributed) on the App Store. If you are more interested in learning computer science in general, I think I'd probably start with a course like Harvard's CS50. I'm starting to agree with others on this forum who have said that Python and other languages are a waste of your time if you're interested in making an iOS app. If you want to make an Android app, I guess I would take a similar course in Android app development and learn Java rather than Swift.
Hey, Doc ...

I just got a sale email from Udemy, and I got the course for £12.99 :).

I’m currently at my nan’s place, so will tuck in when I get back home on Monday.

If you like, maybe we can exchange emails in a PM to help each other along the way?

Happy holidays, my friend.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.