Page 1 of 1

Picking up on Programming

Posted: Mon Feb 27, 2012 1:30 pm
by Welch
So... lets say for instance someone was completely new to programming. However they had a need to create programs/plugins and the like for many different platforms (Android, Google Chrome, Firefox, ect). But not any specific one. How would said person go about obtain enough know-how to jump into another language to the point that they would understand the basics.

With the introduction of GO and Rust I've thought it might be an interesting time to get into programming where you could see the birth (and possibly death) of a new language. I'm interested in quite a few different languages, just curious the best way to start and actually start to learn these languages. Whats the best way/place for one to learn these skills where they can get some practical experience and actually start to see (albiet simple) some results or fruits of their labor?

Ohhh and what do you guys think of GO and Rust as newly emerged languages... waste of time.... inspiring and fresh... or you don't care.

Re: Picking up on Programming

Posted: Mon Feb 27, 2012 3:04 pm
by thegleek
A link that sums up in a recipe for programming success: http://norvig.com/21-days.html

The best first book(s) you'll ever enjoy and learn the most from would be this one:

Head First Programming (using Python): http://www.amazon.com/Head-First-Progra ... 844&sr=1-1

Head First Object-Oriented Analysis & Design: http://www.amazon.com/Head-First-Object ... 179&sr=1-1

Head First Design Patterns: http://www.amazon.com/First-Design-Patt ... 130&sr=1-2

Head First Software Development: http://www.amazon.com/Head-First-Softwa ... 179&sr=1-2

------------------------------------------------------------------

After you have those basics down, this will leading into endless books. Some of my top favs:

Design Patterns: http://www.amazon.com/Design-Patterns-E ... 130&sr=1-1

Writing Beautiful Code (Leading Programmers Explain How They Think): http://www.amazon.com/Beautiful-Code-Le ... 760&sr=1-1

Programming Languages: Application and Interpretation: http://www.cs.brown.edu/~sk/Publication ... 007-04-26/

Essentials of Programming Languages: http://www.eopl3.com/

Re: Picking up on Programming

Posted: Mon Feb 27, 2012 5:29 pm
by wibeasley
If you're evaluating language-agnostic books, I really like Code Complete. In the past 6 or 7 years, I've loaned it to at least 5 people. Each had it a few months.

Re: Picking up on Programming

Posted: Mon Feb 27, 2012 6:10 pm
by UltimateImperative
Rust is really a research language, very rough around the edges -- everything is still in flux. The 0.1 version is meant for people who are interested in new research languages to play with, not really for people just learning to program. As for Go, I think it's a bit silly. You'd be better off starting with something like Python.

Re: Picking up on Programming

Posted: Mon Feb 27, 2012 6:13 pm
by Welch
Just curious, what do you guys both do with your programming knowledge. Is it your primary job or is it something you dabble with.. or perhaps you take it as a very serious hobby? Just curious to get an idea about who I'm getting this information from. Thanks for the very detailed list Gleek!

Re: Picking up on Programming

Posted: Mon Feb 27, 2012 7:02 pm
by thegleek
wibeasley wrote:
If you're evaluating language-agnostic books, I really like Code Complete. In the past 6 or 7 years, I've loaned it to at least 5 people. Each had it a few months.

Yes indeed that is another good book. There's probably a list of 50 more books to suggest, it's never ending!

Welch wrote:
Just curious, what do you guys both do with your programming knowledge. Is it your primary job or is it something you dabble with.. or perhaps you take it as a very serious hobby? Just curious to get an idea about who I'm getting this information from.

Well usually you kinda just get into it. I started off in the early 1980's with no books really. Just some old Commodore 64 and Atari 400 magazines and typing in 6,000 lines of:

4500 DATA 56,24,54,24,32,32,67,125,345,255,255,255,0,0,5,3,2,5,5,56
4510 DATA 56,24,54,24,32,32,67,125,345,255,255,255,0,0,5,3,2,5,5,56
4520 DATA 56,24,54,24,32,32,67,125,345,255,255,255,0,0,5,3,2,5,5,56
4530 DATA 56,24,54,24,32,32,67,125,345,255,255,255,0,0,5,3,2,5,5,56

Which was a very time-cumbersome way to inject "machine language/assembly" code into a BASIC program back in the day. Oh well.

Beyond that (after BASIC), came Pascal, then c, c++, Perl, PHP, html/javascript/css, then TCL, JAVA, VB6, Visual Basic.NET, C#, ASP.NET, etc...

Welch wrote:
Thanks for the very detailed list Gleek!

np

Re: Picking up on Programming

Posted: Mon Feb 27, 2012 8:13 pm
by dmjifn
If a non-programmer had a "need" to create programs/plugins? :)

Here's my opinion, which admittedly might not count for much:

If your goal is more about fiddling as entertainment, just dive in with some tutorials. Have fun and don't worry for now whether your stuff is actually any good... for now.

If your goal is mostly to start cranking mobile plugins, I would pick a more mature platform. Yeah, Dullsville. But odds are there's a wealth of information out there to help you be successful. Like Stackoverflow, where your questions have probably been asked and answered years ago. You can consider it a springboard... With languages and platforms coming and going regularly, it's not like you can find that one do-all-forever language anyway.

If your goal is to learn programming principles and having something to show for your programming, start with an easier platform. Not that mobile and browsers are "hard", but there are more readily digestible platforms out there. The well-worn paths let you can spend your brain energy worrying about whether you're following Code Complete "right" vs. just getting the damn thing to compile. In this case, I'd suggest one of:

* Scripting
** Perl, PHP, Ruby
** Sample projects: MP3 tagger, something that emails you random zen sayings, Project Euler problems, a meeting timer, poker hand odds calculator, a random lunch picker, etc.

* Web
** Ruby on Rails, ASP.NET MVC3 (which is free), PHP, jquery
** Sample projects: Any of the scripting projects. If you work at a place where you do timesheets, maybe make your own time tracker.

Most of these are simple enough to be achievable but complicated enough that you can actually apply some principles of interest. For perspective, check out Lunchypoo. Some former co-workers of mine put it up for their amusement. It looks like a dog's breakfast but they still use it daily. Seriously, if you even get this far, you're making progress.

If you're interested in learning how to do it "right", the other gentlemen do have suggested some great starting points. I would also consider following blogs from 1-2 thought-leaders in whatever platform you pick.

Re: Picking up on Programming

Posted: Thu Mar 01, 2012 1:10 am
by wibeasley
Welch wrote:
Just curious, what do you guys both do with your programming knowledge. Is it your primary job or is it something you dabble with.. or perhaps you take it as a very serious hobby? Just curious to get an idea about who I'm getting this information from. Thanks for the very detailed list Gleek!
Statistics for medical & behavioral research. I program for two types of scenarios. The first is developing (hopefully) new statistical procedures and simulating their performance; for this I typically use C# for most of the code and C++ for small sections of performance-critical code. The second scenario is using existing procedures on observed data. Most of that code is for manipulation; the cleaned & merged result usually is analyzed in R eventually. When I started programming in 2000, I did a lot more database & GUIs for end users.

Re: Picking up on Programming

Posted: Thu Apr 12, 2012 10:27 am
by raidenx
+1 for the Head First Programming (using Python) is sure is a good book. Python is powerful and is easier to learn. If you want to be a game developer, you can look into Head First C#.

Re: Picking up on Programming

Posted: Thu Apr 12, 2012 11:02 am
by Flatland_Spider
Welch wrote:
Just curious, what do you guys both do with your programming knowledge. Is it your primary job or is it something you dabble with.. or perhaps you take it as a very serious hobby?


It's a tool in my sysadmin toolbox. I don't pull it out very often, but it's good to have.

I'd like to get more serious with it, or at least get more serious about dabbling with it :), but I haven't really found the time yet.