Aspies For Freedom

Full Version: Been wanting to get into programming
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
But I have absolutely no idea where to start. It's not that the logic seems daunting or anything. Hell, I mastered the simplified BASIC on my TI-83 when I was nine. But I've since forgotten everything, and I've never known the terminology. Relearning BASIC seems like a pointless and time-consuming effort.

I tried learning Scheme through a tutorial (I heard somewhere that it was a good language to start with), but again, the words were a problem. I was forced to look up everything, but even that was an impossibility, because the definitions always just refered to other obscure words.

So where should I start? I know I'd understand everything, but I need it in simpler terms and I don't want to start with a kiddy language. And I would prefer if I didn't have to purchase anything for this; paying for knowledge is the worst aspect of capitalism.

erkolos Wrote:
Phrogram

Forgot to mention that I'm restricted to OSX at the moment. Any other suggestions?

Yes, keep it up.  Frequently our AS bestows the gift of technological sophistication.  Other gifts can include creativity, math skill, affinity for science, foreign language skill
There are free online programming courses on the internet

Quote:
paying for knowledge is the worst aspect of capitalism.


internet is an exception forn that Big Grin i have downloaded bunch of programs and games free

http://www.programmingtutorials.com/

Don't start with C unless you want to make an OS, program an embedded environment or very low-level system tasks. That's not what I'd think of as a fun intro to programming. C isn't suitable at all for most kinds of application/recreational programming. It's an old language, and it's available absolutely everywhere, and as mentioned a de facto common language for all kinds of things, but that's for social reasons, not for inherent merit. I don't know why anyone would recommend that one start with C in 2007.

What you ought to start with depends on what you wanna do, how much time you wanna spend, and other such factors. But don't go with C.

By merit of Turing-completeness, you can program in Brainfuck (yes, that's the name) or INTERCAL if you'd like, or pure untyped lambda calculus, or even SK combinators, or as mentioned C, but I don't see why anyone would want to do that if the primary object is not to challenge oneself with mastering esoteric programming languages just for the sake of mastering, but rather to learn something about practical programming.

Structure and Interpretation of Computer Programs is a good theoretical start. You could check out http://lambda-the-ultimate.com for more. SICP focuses on the ideas and foundation and not so much on the practical issues. It would be much easier if you had some idea what you want to do.

Actually, I have the same problem. I just don't know what I want to do. I'm competent in a bunch of languages, but not an expert in any language or field. Which grows boring. I love learning, but it's frustrating to know all this stuff I never get to do anything with.
As said, any Turing-complete language can do the same in principle. It's not that C can't do those things. It may even be appropriate. But there is a huge scope of programs, most programs I think, that would benefit greatly from choosing a much more high-level language. Starting with C if you just want to get "into" programming, and not specifically the tasks for which is appropriate, is certain to suck the fun out of doing it.

Also, for a purely personal opinion (because what I said above is not really controversial), battling with pointers, lack of garbage collection, closures and other modern facilities, having to build up so many things all be yourself, is boring compared to more high-level problems.

I would be very surprised if you didn't find a lot more bugs in a C program than a program in another language that does the same (perhaps with the exception of OSes and embedded programming).
FWIW... I tried learning Python back in 1999 or something. I found a tutorial online etc, got myself started, managed to get through the first few lessons and then got stuck. I didn't know anyone irl I could ask, I tried searching for the answer and just couldn't figure it out, so that was the end of it. I don't have a clue why I didn't just go and find a Python forum or something and asked there... I think I just didn't think of that option. So please, whatever language you try to learn... you're likely to get stuck at some point, but there are tons of people on the internet that you can ask for help, if you'll just remember to do so. Smile

Then, a few years after that, I tried learning Java... I borrowed a few books from the library on Java, downloaded what I needed from the Sun website, and got quite a bit further than with Python, but iirc I found it more confusing. Also, I got stuck with that one as well... I think that had something to do with the library books being about earlier versions of Java than the one I had installed... Outdated books are not overly helpful. Again, I don't have a clue why I didn't just find some forum or w/e online and asked for help there.

Then, in college I took a class in Java (had to). I technically was supposed to sign up for Java 0, but I signed up for Java 1 instead and got an A in that class... Often it'd take me a while to figure out what the hell was going on, but hey, I can program neat little programs in Java now. Smile

Then the semester after that I took Digital Systems, and half that class was devoted to programming in assembly. To be honest, I liked assembly best out of the three languages I've tried to learn... I could follow exactly what was going on. Of course, assembly is not one language... there's a different assembly language for every type of computer, and some are harder than others. Also, you don't want to write normal computer programs in assembly language. But based on the fact that I liked assembly better than Java, perhaps I would've been happier starting out with C than with Java.

If you want, Java can be your first language... there are lots of people that have Java as their first language, so if you want to learn Java, don't feel compelled to learn another language first. Overall, I think it probably depends on your personality and why you want to learn to program as to what language you should begin with.
Java might also be a bit off-putting: artificial restrictions, at times extreme verbosity, object orientation shoved down your throut in a way that givs rise to horrible design patterns, and so on. I think Python is a much better starting language. Again, depends on your goal with programming, but I think Python overall will be a lot more enjoyable.

Assembly, of course, is a great way to really understand what goes on under the hood, but equally obviously not a good way to write practical programs.

Vorlath Wrote:
Anyone starting to learn programming, if you really want to understand it, should start with assembly as their first language.


I don't think most people care to *really* understand it though... (or anything else for that matter).

I for one wouldn't consider the minutiae of a specific platform to be the defining characteristic of "true understanding".

Simen Wrote:
I for one wouldn't consider the minutiae of a specific platform to be the defining characteristic of "true understanding".


Neither would I, but assembly languages are fairly similar to each other and give a decent understanding of how computers work. It's about learning the general principles common to assembly languages, not about the specific one (at least in my opinion... Volrath and Eastcheap might disagree).

Speaking of which... when I was learning assembly, my husband and I were discussing what programming language to teach our future children as their first language, and I was arguing for assembly... Not quite relevant yet, but what language would be best to teach a 6yo or so as their first language? Should we try assembly? I almost want to do that just for the experimental value... Smile

So, sitting around all day with nothing much to do I decided to go read through the Llama book (=Learning Perl). So far it's interesting. Learning programming languages seems to be like learning natural languages... the more languages you learn the easier it becomes to learn yet even more. Difference being that I know a couple of natural languages fluently, whereas I know only a fairly small amount of a few programming languages.
Pages: 1 2
Reference URL's