Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Well, I'd love to be able to build a program that analyzes a set of data to determine if there's any statistically significant patterns over a period of time. Ideally, this program would be able to automatically extrapolate the relevant data from source files such as excel, and then automatically generate graphical output of the results.

Python coupled with the PANDAS library would do that for you. Even the graphs can be made almost immediately if you setup iPython, which is an interactive version where you can play in. You could probably learn in one or two weeks enough basics to see some results and decide if you want to continue or not.

You should probably also set yourself some steps in achieving your ultimate goal; this wil make it much more achievable. Same thing as an entrepreneur does : create a minimum viable product and see if it works / attracts the masses. Build on it if successful.

For example :

Highlevel :
1/ learn how to extract the data and massage them into results
2/ learn how to show those results graphically : ie in a web form or in an app ?

Those two could be done separately. You could even learn to extract things in python and show them in swift/cocoa.

Slight less high-level:
1/ select a few xlsx files that can already give you a benefit if properly analysed/graphed
2/ export them to csv for testing - you can learn later on how to actually read inside the xlsx if you deem it useful
3/ install the anaconda python environment (or swift or ...)
4/ determine how to read those csv files in python/swift/whatever you choose
5/ try to use the tools / libraries supplied to calculate and create some results
6/ display those results in a graphical way.

Python has plenty of these tools already built in. Using the PANDAS library together with iPython you could very quickly get some results that will allow you to decide to continue or not.

Even if you decide to not continue, you'll have learned something :)
 
Nope. Like I said, no comp sci experience whatsoever.

I still think the best bet might be to go to the local library or bookstore and find a book on computers and programming meant for children, school kids, etc. And it doesn't matter which programming language (e.g. even books on pre-historic Apple II BASIC or Logo from a vintage used bookstore.) These books usually include some simple silly problems to solve with code.

Move on only when you find those problems and coding explanations to be too easy.

Better to start way too easy, than way too hard and getting discouraged forever.
 
  • Like
Reactions: chown33
Thanks for all the advice. It looks like Python is the way to go, so that's where I'll be starting. I already downloaded a tutorial series for absolute beginners, and I'll be reading "Practical Programming - An Intro to Comp Sci using Python 3" as well.

I managed to find an old website for the Intro to Programming course that I was interested in taking. The lecture slides, exercises, and assignments are all posted, so I could probably follow along and pick up most of the material. I likely won't be able to register in the course because the 4 hours of instruction per week will conflict with my work schedule.

Briefly, the course instructs students to download Python 3.4 (Anaconda Distro) and WING 101 IDE. Do I actually need to download both, or can I work within Xcode? I don't know if these programs were selected for their cross-platform compatibility, but I'll be working exclusively on my MBP. Thanks again, all.

P.S. The only reason why I want to learn programming is to stay sharp and solve problems, so I think my heart is in the right place. Time will tell!
 
Thanks for all the advice. It looks like Python is the way to go, so that's where I'll be starting. I already downloaded a tutorial series for absolute beginners, and I'll be reading "Practical Programming - An Intro to Comp Sci using Python 3" as well.

Good... Start simple and move up from there. Lots of times people want to make apps right away or want to advance to quickly and they get lost. I got lost when I started with Objective C, then backed down to C till I got it which then made it easier to step back up to Object-C. Sounds like you are off to a good start by keep it simple.
 
Briefly, the course instructs students to download Python 3.4 (Anaconda Distro) and WING 101 IDE. Do I actually need to download both, or can I work within Xcode? I don't know if these programs were selected for their cross-platform compatibility, but I'll be working exclusively on my MBP. Thanks again, all.

With Python, you won't be able to work in Xcode, at least not easely. Anaconda comes already with iPython and Spyder (you can install them via "Launcher") which is an IDE that's quite suited for python (keyword recognition, bugs are shown, I use it a lot). You might still download the Wing IDE to see if this suits you better. An IDE is something different for each person. Some persons can't stand the sight of Wings / Spyder / Eclipse / Vim while others are exactly the reverse.

Good luck with the course, I hope you like it and discover the joys of creating your own solutions !
 
Agree with blaster_boy on Anaconda and PANDAS, but wasn't sure about the level of statistics the OP was interested in. Plus it's free so trying it out doesn't really cost you anything other than the time you invest.

The combination is a great package, especially with the Excel integration. Before retiring, a colleague replaced a couple of reports containing a bunch of Access-driven charts and tables with Anaconda/PANDAS/Excel. Fast and flexible and you're learning Python to bring it all together.

Have fun!
 
I've been learning with http://codewithchris.com/courses-overview/

It's meant for people who are beginners to programming, so a lot of the content might be a bit slow and review. However, I've found it does help better understand Swift's syntax and structure as well as using xCode.

There's the first part of the lessons available for free on his YouTube, where it covers one very simple card game with score tracking:


Doubt it'll give you all you ever need to know, but it will help you get some base knowledge so you can more easily learn patterns and practices.
 
Last edited:
I'd suggest starting with Python or C. In the case of Python, it's free and there's a pretty wide selection of websites and books to get you going.

Swift is easy enough to get into. It's almost like Python and Objective C had a baby.

As for learning how to design solutions for the problems, programmatically, experience is what helps with that; and you only get that by actually practicing. So, I'd say if they wanna jump in on that with a tutorial, all the more power to them. It'll probably keep their interest better than forcing them to deal with a language they'll probably not use later on, imho.
 
I've been learning with http://codewithchris.com/courses-overview/

It's meant for people who are beginners to programming, so a lot of the content might be a bit slow and review. However, I've found it does help better understand Swift's syntax and structure as well as using xCode.

There's the first part of the lessons available for free on his YouTube, where it covers one very simple card game with score tracking:

Doubt it'll give you all you ever need to know, but it will help you get some base knowledge so you can more easily learn patterns and practices.

Just the title of that video tells me that its setting up people to fail. Following videos like this people just copy and paste code and don't really grasp what they are doing. They make an app and don't really understand what they are doing but are excited that it just worked.

IMO any new programming with no experience should not be starting with a GUI program. I do agree that sitting in front of the computer and trying things out is good. You can read all do but with out testing and playing its hard to learn, you gain a lot of experience by doing and making mistakes. But start doing it in a simple language first like C or Pascal before they are burdened by GUI's and Object concepts. Trying to understand Objects before they grasp how to use a For loop to me is crazy. I think more people give up trying to learn because they start in the wrong place and think its to hard. I have been there and learned a lot, this was my experience learning.
 
I would strongly suggest learning the basics of computer science first. Park the shiny new stuff, like Swift, aside for a moment and check out the MIT and Stanford courses on iTunesU.
 
  • Like
Reactions: mijail
Just the title of that video tells me that its setting up people to fail. Following videos like this people just copy and paste code and don't really grasp what they are doing. They make an app and don't really understand what they are doing but are excited that it just worked.

IMO any new programming with no experience should not be starting with a GUI program. I do agree that sitting in front of the computer and trying things out is good. You can read all do but with out testing and playing its hard to learn, you gain a lot of experience by doing and making mistakes. But start doing it in a simple language first like C or Pascal before they are burdened by GUI's and Object concepts. Trying to understand Objects before they grasp how to use a For loop to me is crazy. I think more people give up trying to learn because they start in the wrong place and think its to hard. I have been there and learned a lot, this was my experience learning.
The series actually does a good job of going over basic programming fundamentals while keeping the theme of how it relates Swift and xCode. I went into it while already having the knowledge of programming fundamentals and really just wanted to see the syntax and structure.

I feel it depends on the goals of the individual. If they just want to develop for OSX and iOS, I see no issue in just diving in. If they're looking into being a passionate/well rounded programmer, than they should expand their knowledge, yes.

But again, this lesson series might just be easy to me cause I already know the fundamentals of programming. At least the first part of the lessons is free, so the person could try and see if it makes sense to them or not.
 
The series actually does a good job of going over basic programming fundamentals while keeping the theme of how it relates Swift and xCode. I went into it while already having the knowledge of programming fundamentals and really just wanted to see the syntax and structure.

I feel it depends on the goals of the individual. If they just want to develop for OSX and iOS, I see no issue in just diving in. If they're looking into being a passionate/well rounded programmer, than they should expand their knowledge, yes.

But again, this lesson series might just be easy to me cause I already know the fundamentals of programming. At least the first part of the lessons is free, so the person could try and see if it makes sense to them or not.
I look back at C days now and I shake my head at how I struggled to understand it when I was learning. I can sympathies with people struggling to learn the basics, they seem so simple now. The problem I have is that computer languages change all the time now, there are more of them and you can do a lot more with them. The greater the understanding of the fundamentals, the easier it is to pick up new languages and adapt to the changes. Learning to program these days is almost a full time job to keep up. I think the OP has a lot of good info from many people here to chew on now.
 
  • Like
Reactions: derekmlr and theSeb
I look back at C days now and I shake my head at how I struggled to understand it when I was learning. I can sympathies with people struggling to learn the basics, they seem so simple now. The problem I have is that computer languages change all the time now, there are more of them and you can do a lot more with them. The greater the understanding of the fundamentals, the easier it is to pick up new languages and adapt to the changes. Learning to program these days is almost a full time job to keep up. I think the OP has a lot of good info from many people here to chew on now.
I really like this post, except that I slightly disagree with your second to last sentence. Once you have learned the fundamentals, you need to keep up with latest developments and advancements in languages, but you don't need to keep learning how to program. That stays with you for life. I used to do a lot of C and C++, but I haven't touched it for about 10 years. I could easily pick it up again, even though I have forgotten a lot about syntax. I can also pick up most languages quite easily and quickly. The only thing that takes a little bit of adjustment and reminding is the syntax. There is also a world of difference between knowing how to program and knowing an SDK. Many people don't seem to understand that difference.

As an aside, I just can't get Perl, or awk and sed for that matter. A few years ago I worked with a guy that could do amazing stuff with awk and sed. It was bewildering.
 
The problem I have is that computer languages change all the time now, there are more of them and you can do a lot more with them.

The basics of computer languages (and the programming model of the underlying machine) change very little. What changes are the tools, libraries, frameworks, and sometimes layers of syntactic abstraction that are entirely optional (unless you want to be obscure or impress the language lawyers on your team).

I can still write a 10 line C program the same as I did many decades ago. But now, instead of using printf and being done, I have to add or figure out 100's to 1000's of lines of Cocoa Touch framework code, IB auto-layout and Xcode project settings to get one line of (now unicode emoji instead of plain 7-bit ASCII) output to appear on my iPad's display.

That's one of the reasons I recommend using Python from the Terminal rather than Xcode/Swift/SpriteKit/blah-blah to learn to code.
 
  • Like
Reactions: blaster_boy
I can still write a 10 line C program the same as I did many decades ago. But now, instead of using printf and being done, I have to add or figure out 100's to 1000's of lines of Cocoa Touch framework code, IB auto-layout and Xcode project settings to get one line of (now unicode emoji instead of plain 7-bit ASCII) output to appear on my iPad's display.

That's one of the reasons I recommend using Python from the Terminal rather than Xcode/Swift/SpriteKit/blah-blah to learn to code.

And in this case you would use println(), is there any particular reason why you would not be able to compile and run a swift program from the terminal? The fact that ASCII is not used doesn't mean much at all, on the other hand, try anything but ASCII in C and you enter a world of pain.
 
Agree with larswik above on the user interface stuff. I didn't do any GUI stuff until I started with the original Mac Toolbox stuff in an area that had countless Macs on trading desks. Didn't need to do event-driven programming up to that point and was just focused on results and tight code.

Having said that, the GUI stuff really causes you to think about the flow of how others use what you've developed in ways you might not have originally anticipated.

Just plunge into a language and have fun trying to make it work for you.
 
... is there any particular reason why you would not be able to compile and run a swift program from the terminal?

None. But what percentage of Swift tutorial material starts out that way, and what are the odds that a complete newbie would find such? (or even have any clue what that had to do with learning to code an app for their iPad?)

There are still steps from start to to goal, but they are often much higher and nearly invisible. Or students get helicoptered to the top via some canned tutorial without having any clue of how to get there again to create an algorithmic solution to their own desired problem.
 
None. But what percentage of Swift tutorial material starts out that way, and what are the odds that a complete newbie would find such? (or even have any clue what that had to do with learning to code an app for their iPad?)

There are still steps from start to to goal, but they are often much higher and nearly invisible. Or students get helicoptered to the top via some canned tutorial without having any clue of how to get there again to create an algorithmic solution to their own desired problem.
Very few, but one I can think of is Swift by Tutorials from Ray Wenderlich. It's not free though. Overall I do wholeheartedly agree that people "wanting to learn programming" should stay far away from iOS tutorials until they actually understand the fundamentals of programming, as discussed above.
 
None. But what percentage of Swift tutorial material starts out that way, and what are the odds that a complete newbie would find such? (or even have any clue what that had to do with learning to code an app for their iPad?)

There are still steps from start to to goal, but they are often much higher and nearly invisible. Or students get helicoptered to the top via some canned tutorial without having any clue of how to get there again to create an algorithmic solution to their own desired problem.

Totally, and this was the point of my last post as well. And to take this further, Swift is still a language in flux. After watching the Swift 2 WWDC session video, it became clear that Swift 1 was only presented three months ago. So before it has become more stable, and a larger developer comunity has used it for a while, it's not likely that any beginner friendly books or tutorials will emerge that presents the language from the ground up.
 
Thanks for all the advice. It looks like Python is the way to go, so that's where I'll be starting. I already downloaded a tutorial series for absolute beginners, and I'll be reading "Practical Programming - An Intro to Comp Sci using Python 3" as well.

I managed to find an old website for the Intro to Programming course that I was interested in taking. The lecture slides, exercises, and assignments are all posted, so I could probably follow along and pick up most of the material. I likely won't be able to register in the course because the 4 hours of instruction per week will conflict with my work schedule.

Briefly, the course instructs students to download Python 3.4 (Anaconda Distro) and WING 101 IDE. Do I actually need to download both, or can I work within Xcode? I don't know if these programs were selected for their cross-platform compatibility, but I'll be working exclusively on my MBP. Thanks again, all.

P.S. The only reason why I want to learn programming is to stay sharp and solve problems, so I think my heart is in the right place. Time will tell!


I may need a flame suit for this but....


You may want to find python resources more in the 2.x region. Or at least be aware of you go this route and use what I call the university of google method when looking for help you may find 2.x code along with 3.x. Also if asking for help always state clearly you are on 3.x versions. Basically just know the version of python you are seeing when looking for help...lots of even basic 2.x will not work in 3.x

If you code for this and for personal use....go for it as its not an issue. If at some point what you code will be put on other systems, you will probably hit version incompatibility.

there are lots of ways to get more than one python to cover this of course. I use homebrew project to install something called pyenv. Google these if interested. They get me as many flavors of python as I want that basically can run in their own shelled environment leaving the core python in mac os in place when done.


Your sources recommendation is based most likely on the instructors preference for that IDE. You can write in anything you want really. Not sure about x-codes support as never tried. Mostly I use BBedit (text editor) and do my own stuff like manual running of scripts. I have also in the past tried a very beta ide called exedore. Its dev is not prolific on the updates but since a one person show I gather I can live with that. Liked it enough I paid the small fee to license it.

Some will say eclipse. I personally hate it. But....try them all and see what you like and don't like. Dev tools are very personal choices....pick one to your tastes.
 
Check out udemy.com. There are a lot of 'courses' on there for Swift that range from free to $200. I personally took
https://www.udemy.com/complete-ios-developer-course/?dtcode=CoSWGy13a52w when the cost was $15. The site often reduces the price to attract you to other courses too. This course walks you through building apps from scratch. Not bad for $15. And the course is updated regularly too with 'fixes' and to account for Swift changes.
 
Apple does have free Swift books on the iBooks store. I also like playgrounds in Xcode as you can see what your code does in real time. However, as people said, Apple released Swift only a year ago, so Swift still has some maturing to do.
 
interesting thread!

I am not really a good programmer but I think it's probably okay to start with any language.
I mean you could go really hardcore and study something totally fundamental or study something a lot more higher level like swift but in the end the logic is not too different... For me, something like swift or matlab are enough.
 
Well, I'd love to be able to build a program that analyzes a set of data to determine if there's any statistically significant patterns over a period of time. Ideally, this program would be able to automatically extrapolate the relevant data from source files such as excel, and then automatically generate graphical output of the results.

For example, let's say I want to analyze enrolment data for an academic department over the period of two semesters. This would include information such as course title, year of study, day/time, instructor, classroom, and so on. I have data from each week of each term, and so I can track how enrolment has fluctuated over the two-semester period. Ideally, this program would be able to automatically extract/format the relevant data from the weekly spreadsheets, and then perform statistical analysis to determine what is the principal driver of, say, dropping enrolment numbers. This could provide useful insights -- e.g., courses scheduled before 9am have high drop rate, Prof. X has excellent student retention rates, etc. In addition, it would be helpful if visual aids were automatically generated based on the output results (e.g., graphs, pie charts, etc.).

I just described SPSS, lol. But seriously, I'd like to be able to create a program like this, but designed for one very specific purpose, so that I can simplify the functions and layout, thus making it more accessible for non-technical users. I'm absolutely neurotic about UI functionality and design, so although I could probably find a program to meet my computing needs, I'm unlikely to ever be entirely satisfied with it.

I realize this isn't a feasible project for a beginner, but hey, you asked!

Sounds like you might want to try coding that right in the spreadsheet itself. Excel comes with many statistical functions, and I believe it can use VBScript for actual coding.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.