Skip to comments.You Need To Learn How To Program
Posted on 01/13/2012 1:08:17 AM PST by Sonny M
click here to read article
In my humble opinion if you aren’t learning C# (c-sharp) or Java you are wasting your time. Most all new development (including phone apps) are done in one of these 2.
I take it from your handle that you are a Sherlock Holmes fan :-)
I have been getting the old british SH TV series off youtube lately....good stuff. :-)
Fortunately not all math professors have such a negative attitude.
Once Google engineer Peter Norvig, the author of the page linked in #15, was giving a talk at Stanford on Python, which is generally considered an unusually powerful programming language. An old professor named John McCarthy happened to wander in. When Norvig concluded his presentation and and asked for questions, McCarthy raised his hand and asked if Python could gracefully manipulate Python code as data. No, John, it cant, responded Norvig.
In 1958, McCarthy, who passed on last October, invented Lisp, the most powerful computer language of them all. Lisp can gracefully manipulate Lisp code as data.
thanks. I’ve never had soldering skills so I’d have that whole skill set to acquire. Please let me know if you decide to do the tutorial.
C# is purely for work on Microsoft OS platforms. It’s Microsoft’s response to Sun Microsystems averting a takeover of Java by MS. If you learn C#, you’re stuck with Windows - great if that’s what you want to develop for, limiting if you intend to spend much time on other ecosystems.
Java dominates Android and FOSS development. Widely used, but not as much as some think.
On Apple systems (OS X and iOS), Objective-C dominates. Like C#, a must-have for the indicated platform, not much use elsewhere.
C++ is the Latin of software. Awkward, powerful, arguably dead, but a great starting point from which you can either branch to newer descendant languages, or to developing for legacy (loosely defined) systems.
Python, Ruby, and a few others are big for web development.
If you’re learning programming for _fun_ start with C++ or Java then consider something entertainingly esoteric like Lisp, Prolog, Forth, or newer equivalents (akin to learning Latin then Japanese, Thai, or Inuit).
Assembler! When you absolutely have to do a USB driver in 2KB.
I will definitely get me some Rasberry Pi. That looks sweet, very beautifully minimal in an early VW sort of way. I hope it goes somewhere.
Lisp can gracefully manipulate Lisp code as data.And I am still missing this and other Lisp features in every other language. *sigh*
Probably starting with Java makes the most sense, now there are other languages that run on the JVM, like Groovy and Scala.
But a well-experienced Java developer can easily make the leap to C# and Objective-C. I am learning Objective-C now for iOS, and once you get through the syntactical differences, it’s pretty easy to pick up. Most of the concepts easily map from Java.
We're fortunate to have Bjarne Stroustrup, the creator of C++, here in the Lone Star State at Texas A&M where he has taught some freshman introductory courses. It's not unlike having Thomas Edison as a professor for basic electricity theory and practice.
I can't help but recommend his Programming -- Principles and Practice Using C++ book. I'm a crusty old programmer (C, C++, Java, Perl, PHP, Python, LISP...) but this book made me feel like a kid again. It was a joyful experience to rediscover the basics in a new light with a fresh start. Stroustrup's book presumes a blank slate and although he uses C++ as the tool, the lessons are applicable to programming in general. And a manner similar to Latin, C++ is a good fundamental language since so many of the newer OOP languages were inspired if not actually descended from it.
jonrick46: If you're looking to ease into programming and also have fun while doing so, I can heartily recommend this book.
Just USB? :-)
My first home computer was a ZX-80 with 1KB RAM - total. That included shared video & OS memory. Learned a lot trying to cram tokenized BASIC programs into what little was available.
Ya, there is open source USB code for the ATTiny2313 written in C that can be used to get your bitty little processor talking to the rest of the world. It’s fun to read; there is rather a lot going on with USB.
I love my green screen and green bar paper system. It works.
They’ve been trying to take it away from me for 14 years. They keep taking small bites. “Oh yeah, we forgot to tell you that that file has been migrated to the new system”
I tried the first week’s lessons. I think they are interesting, but may pose a problem for abject beginners. Finding the syntax errors is too much for the non-programmer.
You realize that without 'C', assembler, and Forth there wouldn't be any OS for C# or Java to execute on, right?
5 LET S = 0
10 MAT INPUT V
20 LET N = NUM
30 IF N = 0 THEN 99
40 FOR I = 1 TO N
45 LET S = S + V(I)
50 NEXT I
60 PRINT S/N
70 GO TO 5
Beginners All-purpose Symbolic Instruction Code!!
Yep! Basic BASIC.
25 years ago, we had Ronald Reagan, Johnny Cash, and Bob Hope.
If you can't appreciate the pure beauty of the violin after hearing this, something's wrong with your ears.
Or you can get raw with these strings.
How about this gamechanger from America's Got Talent (which they SHOULD have won).
And this YT vid, dedicated to the one and only rdb2, whose eyes are growing dim.
Either way, the violin is sweet yet lethal.
Maybe most jobs, but on a flip-side, he’d be competing with hordes of programmers from here, India and China. Sometimes it helps to learn those older languages to get a niche job.
For example, my brother works with hardware engineers and the firmware group. They have a very difficult time finding young programmers with C knowledge or experience. There will likely be a long-term need for firmware programming in C because it is so efficient.
Now, C. That could be quite useful.
If they can master the fundamental structures of C, all the For, while, do, if, variables etc, then they got it made as far as any other language goes. Small leap from there.
You may be right. Assembly might make it too geeky for a hobbyist.
The ATtiny85 has 8k of flash, enough for a rather large amount of compiled C code.
I’m trying to think up a good name for a blog.
Yes! Yes! You said it! Trying to solve a particular problem is KEY!
I ended up having to pick up SQL because a project I wanted desperately to get working required it. It came with about half the stuff the full thing would have, and was missing several zones I desperately wanted. I *did* have access to some of the data, from a previous database...in an older format!
Cue the crash course in SQL...all it took was being angry and aggravated enough and sick of the fact no one else seemed to prioritize the things I wanted, and I just sat down and taught myself how to do it.
Thanks again for the blog. I'm looking forward to it.
How will we know when it is set up and how to get to it?
For example, sometime you might want to insert instructions purely for timing purposes that don't do any actual computation. The compiler (thinking it is doing you the favor of improving your code) will remove the instructions that it thinks are "useless" but which are actually providing a critical timing function.
An understanding of assembly allows you to detect when this happens, and other weirdness. There is always other weirdness.
Then there’s C#, a pretty easy and elegant language, mainly used for the Windows platform. It’s been my personal favorite for years.
Or you can learn ObjectiveC, not easy, but you’ll be programming for the iPad, iPhone and Mac.
Many people love Ruby, you might want to check that out.
Thanks for the info. I have written in C, machine language, FORTRAN and Visual Basic. The only one I liked was Visual Basic. It’s good to know that C# has your approval. I might play with it just to dust off my skills.
Sounds like Java. That class stuff is weird.
If anyone else is interested in following a simple blog for C beginners just private message me and I will send the address for the blog when I get it started up.
It will be a programming the ATtiny85 in C blog.... very simplified for newcomers to embedded programming.
I’m pretty anal retentive when programming, so C# appeals to me. Just write a program using the standard formatting (Visual Studio will even format for you) and it is very clean and readable. Contrast Perl, ugly, hard to read no matter what, although a very powerful language for its purpose. You can’t do everything in C#, like low-level stuff. You’re running in a managed environment so you can’t play fast and loose with pointers and other such things. OTOH, all that’s taken care of in the environment, and you don’t really need pointers.
I still like machine language though, at least old 8-bit.
Great point! Focus on C# or Java!