Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

How Should a Non-Techie Learn Programming? 346

CurtMonash writes "Nontechnical people — for example marketers or small business owners — increasingly get the feeling they should know more about technology. And they're right. If you can throw up a small website or do some real number-crunching, chances are those skills will help you feed your family. But how should they get started? I started a thread with the question on DBMS2, and some consistent themes emerged, including: Learn HTML + CSS early on; Learn a bit of SQL, but you needn't make that your focus; Have your first real programming language be one of the modern ones, such as PHP or Python; MySQL is a good vehicle to learn SQL; It's a great idea to start with a project you actually want to accomplish, and that can be done by modifying a starter set of sample code (e.g., a WordPress blog); Microsoft's technology stack is an interesting alternative to some of the other technology ideas. A variety of books and websites were suggested, most notably MIT's Scratch. But, frankly, it would really help to get more suggestions for sites and books that help one get started with HTML/CSS, or with MySQL, or with PHP. And so, techie studs and studdettes, I ask you — how should a non-techie go about learning some basic technological skills?"
This discussion has been archived. No new comments can be posted.

How Should a Non-Techie Learn Programming?

Comments Filter:
  • by Chirs ( 87576 ) on Friday July 30, 2010 @06:59PM (#33090800)

    I've been working in programming for over a decade and haven't had to deal with CSS or database work at all. The last website stuff I did from scratch was pure HTML. Arguably this isn't great from a generalization point of view, but I've got most of a decade of experience with low-level linux kernel and application coding, high performance networking, high reliability system design, etc.

    As others have said...the place to start depends totally on what they want to accomplish. I started out as a kid typing in simple games in BASIC from a magazine, then debugging them trying to find the typos when they didn't work right away. Now maybe it might make sense to create a simple iPhone app (or the equivalent for whatever other phone one may own).

  • Plethora of Options (Score:5, Informative)

    by cosm ( 1072588 ) <thecosm3@gma i l .com> on Friday July 30, 2010 @07:05PM (#33090854)
    Couple points:

    1. You have to get your mind in the 'programming' mindset. Learning programming isn't necessarily purely about being a techie. You need to have solid logic skills. Much of programming is spent just getting logic right. Check out Boolean Logic [wikipedia.org] for an launch point. The knowledge you gain from briefing this area will carryover into many, many programming languages. Programming *is* logic.

    2. Learn what you want to program for. Pick a startup project. Is it a website you want to make? HTML & CSS is very different than learning C or C++, likewise, SQL is very different than assembly. Not that certain concepts don't carry over, but much of being a jack of all trades is simply having the ability to have good conditional logic skills, and the ability to Google things quickly and learn to apply them as you go. You don't have to become a master of all languages, or hell, even one language, but if you are truly *interested* (thats the keyword, if your not interested, its just not going to happen), and you have done a little programming in a couple of simple languages, then you will be in a good position to progress to more difficult projects.

    3. Learn what you want to program for. Again. Repeated point. There are hundreds of programming languages, platforms, architectures, styles, libraries, etc. Pick something you are interested in, read about it a little bit, and if it looks like the learning curve isn't too ridiculous, start there. Perhaps a simple text based JavaScript browser game. At the end of the day you will know a bit of CSS, HTML, and JavaScript if you put your mind to it. But thats just one example.

    4. W3C. This [w3schools.com] website is a good starting point for all things web.

    5. Chrome Experiments [chromeexperiments.com] If you really like web, check out the future of browser bling. Heavy JavaScript and HTML5

    6. Databases. Not the most mentally entertaining, but you will need the knowhow to connect, select, insert, update, and delete data if you are doing anything with data. I am a Microsoft guy, and I can tell you that the Express Editions [microsoft.com] of Visual Studio are a greating starting point for a newbie, at zero price-point, and bundled with SQL Express [microsoft.com], thats a good place to begin.

    7. Also, places like CodeProject [codeproject.com], StackOverflow [stackoverflow.com], and CodePlex [codeplex.com] are great tools for questions ranging from the most basic to the most advanced of topics, and downloading sample code and live projects for tinkering around with.
  • by ChrisMaple ( 607946 ) on Friday July 30, 2010 @08:05PM (#33091498)

    Leaning an assembler is a good place to start, but for a beginner to learn the x86 thoroughly is a bad idea. The principles of an assembler and its relation to hardware is important, the minefield that is the x86 design is discouraging.

    Learning K&R C, which is now obsolete, is a mistake. Learn ANSI C and something of the best extensions.

  • by meburke ( 736645 ) on Friday July 30, 2010 @08:06PM (#33091508)

    If you can't write programs better than you phrased your question you will be no good to anybody. Learn to think and write clearly.

    I suggest you start with a book similar to, "Programming Logic and Design" by Farrell http://www.powells.com/biblio?inkey=17-9781418836337-0 [powells.com] . This approach teaches you how to think about solving problems using computers, and you will not be stuck in any specific language. There are already too many people out there who learned a computer language and jumped to the conclusion they were programmers.

    When you do pick a language, pick a GOOD source for learning. I like the books written by Charles Petzold or the books produced by Deitel and Deitel. Pick a useful language like C/C++ if you can.

    Make a list of all the things you would like to program if you could, then start with the smaller ones and work forward. Learning to program Excel spreadsheets will teach a a LOT about regular programming, including how to relate to a database. If you are serious about database applications read Joe Celko's books; they will save you LOTS of time and save you from writing too many embarrassing apps.

    When you get so you can produce some decent programs, polish up and get some depth by learning Assembly and LISP.

    With all this as a foundation, you will have a terrific overview and some solid competency in programming. You can do whatever you want. You will have the mental skills to learn any language and do good work.

    You might wonder if you can actually learn programming by reading on your own; the answer is NO! You must program to attain the skill. I have a friend who used to be an electronic organ repairman. He saw that the future was not in his knowledge of electronics, but in swapping out cards in the organs. He took a job on an oil rig for six months and learned to program from Petzold's book on Windows Programming during his off time. Three years later he was earning over $200/hr as a contract programmer. Much of his success has to do with the high standards he sets for himself.

    Since it won't happen overnight, you might want to think about short courses offered by DeVry or a similar institution.

    Good Luck, and have fun.

  • by quercus.aeternam ( 1174283 ) on Friday July 30, 2010 @08:11PM (#33091546) Homepage

    And if you want the whole thing:
    http://www.gnu.org/fun/jokes/helloworld.html [gnu.org]

  • Re:Don't (Score:4, Informative)

    by sycodon ( 149926 ) on Friday July 30, 2010 @08:57PM (#33091846)

    Yes, that is from a for real job requirement.

  • by TapeCutter ( 624760 ) * on Friday July 30, 2010 @09:07PM (#33091936) Journal
    C is certainly not the easiest language to learn but it will give you a very solid base that will make every other language easier to pick up. And yeah, most books are focused on boring bussiness applications but you need to remeber that it's programming you're learning, the bussiness apps are just contrived examples that are designed to touch on all of the basic programming elements.

    THE classic C book is K&R [amazon.com], it does not have example applications, it has examples of techniques. If you take the (non-trivial) time to understand K&R from cover to cover you will still not know how to write MIDI drivers but your skills will be such that it will be easy for you to pick it up in a couple of days.

    Note that K&R uses unix as it's example operating system but it does not teach you how to compile/link on any OS. Linux distro's usually have the compiler/linker already installed. If you want to use windows then you will need to find (and learn) an IDE, a respectable freebie is Eclipse. [eclipse.org]
  • by julesh ( 229690 ) on Saturday July 31, 2010 @04:18AM (#33093850)

    error messages (the fact that there even *is* a crazy hebrew one in PHP makes this laughable but ok...), check

    I should explain this for anyone who is perplexed as to why PHP has an error message in hebrew: it doesn't. The name used by the parser to refer to one of its operators ("::") is taken from hebrew ("Paamayim Nekudotayim", meaning "double colon"). This is what happens when your parser is developed by Israelis. The error message is, however, in english, only the operator name is not.

  • Re:Don't (Score:2, Informative)

    by crow_t_robot ( 528562 ) on Saturday July 31, 2010 @10:19AM (#33095124)
    This made my morning. I agree wholeheartedly with this post and I recommend to people to start with fundamentals of computing/programming concepts so they can easily slip between languages if they choose to go this route.

    http://mitpress.mit.edu/sicp/ [mit.edu]
    The book linked above is a great start if you are serious. Don't half-ass the learning process. It is going to suck in the beginning and your brain will hurt (just like doing most new things in life) just stick with it and persevere.
  • Game Maker (Score:3, Informative)

    by Purity Of Essence ( 1007601 ) on Saturday July 31, 2010 @10:36PM (#33099054)

    I'll probably be vilified for this, but if you are using Windows (or Mac), try Game Maker (Mac version is beta). It's a good introduction to a lot of programming concepts using a construction set like metaphor. After you learn the basics, it's easy to move to just code. Game Maker is free, many schools use it, and it was developed by university professor as a teaching aid.

    http://www.yoyogames.com/make [yoyogames.com]

    Read the manual, do the tutorials, work your way up to GML code, take your questions to the GMC forums. Once you learn GML (which is similar to C and PHP, but allows Pascal style code as well), you'll be able to pick up other languages easily. Most programming languages are very similar.

    There is also a book, The Game Maker's Apprentice, if you feel the need to purchase something.

    http://book.gamemaker.nl/ [gamemaker.nl]

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...