Slashdot Mirror


How Should a Non-Techie Learn Programming?

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?"

346 comments

  1. Drupal. by Anonymous Coward · · Score: 0

    Learn Drupal. PHP + MySQL + HTML + CSS + JS

    1. Re:Drupal. by unity100 · · Score: 1

      yes learn drupal, and enter a world of shit. developer hostile, development hostile code.

      http://amplicate.com/hate/drupal

    2. Re:Drupal. by keeboo · · Score: 1

      So Drupal is bad in your opinion.
      What do you think is the "good" option instead?

    3. Re:Drupal. by Anonymous Coward · · Score: 1, Funny

      Not learning Drupal?

  2. practice by Anonymous Coward · · Score: 1, Interesting

    Once a day for five days for a year they should practice with the programming language of their choice.

    There is no magic bullet, you're not going to learn Java or Python in 20 days with those dunderheaded, oversized volumes.

    Just work at it and you'll get better.

    Also: http://norvig.com/21-days.html

    1. Re:practice by Meshach · · Score: 4, Insightful

      Agreed. The asker seems to be looking for some silver bullet there really is none. Ultimately it dies not matter what language you use or what paradigm you subscribe to. The only thing that will make you proficient is practice.

      Maybe the best option is to take an introductory programming course at a community collage and see if you like it?

      --
      "Maybe this world is another planet's hell"
      Aldous Huxley
    2. Re:practice by jawtheshark · · Score: 1

      community collage

      I guess you learn how to cut and paste paper very well in those.

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    3. Re:practice by DeadDecoy · · Score: 1

      I do think, however, it depends on your task. It helps to know whether you're going to do application programming (java, c++) or web programming (php, javascript, ruby, html) or academic programming (perl, python, R) if you just want some surface level knowledge to accomplish a one-time task. Otherwise I'd recommend a few courses, books, and practice to establish a reasonable foundation for coding. The former is quick but you'll be limited in your ability to complete tasks quickly and the latter has a steeper, more time-consuming learning curve but you'll be more capable at solving a wider variety of (automated) problems. Just a cautionary note, computers won't be able to solve all the problems a PR team can dream up within the constraints specified by management.

    4. Re:practice by M.+Baranczak · · Score: 1

      That's called "code re-use".

    5. Re:practice by Hatta · · Score: 1

      Maybe the best option is to take an introductory programming course at a community collage and see if you like it?

      Don't do this. You can teach yourself anything you'd learn in an introductory community college just by sitting down and reading and practicing.

      --
      Give me Classic Slashdot or give me death!
    6. Re:practice by Larryish · · Score: 1

      Use shared hosting, so everything is done for you and you have something shiny like cPanel.

      Pick a CMS and stay with it, something that has lots of free templates available.

      Learn just enough HTML and CSS to get by when you go to edit your template.

      phpMyAdmin is your friend.

    7. Re:practice by Anonymous Coward · · Score: 1, Insightful

      Agreed. The asker seems to be looking for some silver bullet there really is none. Ultimately it dies not matter what language you use or what paradigm you subscribe to. The only thing that will make you proficient is practice.

      As one of those people who're only getting into code now, I see it as useful in the same way as knowing a little bit about cars is useful, or knowing front/back of a power drill. It's important to know enough about all the parts of your company that you don't get screwed. It's easier as an administrator to understand why something isn't done if it's an area where you know (even vaguely) what's going on. Right now, if someone tells me that the thingamabob won't run because the blobdiblue won't support the gadget, I'll just have to take them at face value. With even a little knowledge, I would be able to do more than nod politely.

      (That being said, I also love the idea of coding, so this could all be excuses for me to start a new hobby).

    8. Re:practice by maxwell+demon · · Score: 1

      Actually, I think there's something much more important: Curiosity. If you only learn it in the hope that it helps you making money, it will soon bore you, you'll have a hard time keeping at it, and you will likely get mediocre at best. Therefore the main point is to get yourself really interested in it. As soon as you really, genuinely want to know, not for the prospect of potentially making money, but for curiosity of the thing itself, any halfway decent source should be enough to learn, and if in addition you have enough time for it, you'll very likely get good in it.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    9. Re:practice by CastrTroy · · Score: 2, Insightful

      At this point I really wouldn't say you were a programming, any more than someone using functions in Excel is a programmer. Learning just enough HTML to get by and modify someone else's template is surely a deathtrap. Soon you will change something, and it will completely mess up everything, and you'll have no idea how to fix it. Or you'll do something the "wrong way" and it will screw you over in 3 weeks.

      My opinion is that you should learn programming first, basic command line stuff. Then move on to the GUI. After that you can learn how to manipulate databases. After that, you should move to the web.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    10. Re:practice by ultranova · · Score: 1

      Once a day for five days for a year they should practice with the programming language of their choice.

      Nah. You should pick a project you want done, then do it.

      There is no magic bullet, you're not going to learn Java or Python in 20 days with those dunderheaded, oversized volumes.

      True, and even more so if you're not a programmer to begin with. I'd suggest looking up Turing machine, and once you understand the idea proceed to Von Neuman architecture, at which point you have some idea of what programmers do and can thus have far better chances of understanding programming languages.

      I've never understood why otherwise intelligent people steadfastly refuse to learn the basics of computers, instead memorizing a lot of command sequences that break if anything's different. It's a lot less work and far more gain to simply learn what's going on behind the scenes, yet people refuse to do that.

      Also, if you use a programming language such as Java or Python, look up all the buzzwords associated with it, then look up their meanings and why they might be a good idea. The language is "object-oriented"? What does that mean? What problem does it try to solve? What's the catch?

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    11. Re:practice by commodore64_love · · Score: 1

      Penn State recently started a program for non-techies.

      Information Sciences and Technology (IST-BS). The classes read like the two years of engineering (but simplified), intermingled with Human Resource-related training like Technical Writing, Communications, some teaching classes, and so on. It was designed by companies looking for tech-saavy workers but not full engineers or programmers.

      --
      "I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
    12. Re:practice by Anonymous Coward · · Score: 0

      Most people want to learn programming to get a better job. (laugh track)

      No seriously, programming is a job to them and they don't care if they're turning spaghetti code into more spaghetti code. Moreso they haven't cut their teeth on a computer learning how it works. At best they discovered, on their own, how to cheat with save files playing Wizardry: Proving Grounds of the Mad Overlord but beyond that they didn't care about the inner workings just as long as they could waste a few hours chasing a virtual amulet.

  3. what problem are you try to solve? by peter303 · · Score: 3, Insightful

    Once you clarify that, then you can look at the range or software and hardware solutions, which could include some programming.

  4. The tao of programming by Radres · · Score: 5, Funny

    Give someone a program, frustrate them for a day. Teach someone to program, frustrate them for a lifetime.

    1. Re:The tao of programming by nobodylocalhost · · Score: 1

      I don't know... with crap like this: http://www.jasig.org/cas
      a program will frustrate them for years to come try tying it to every other piece of software they use.

      --
      Where is the "Ignorant" mod tag?
    2. Re:The tao of programming by Reilaos · · Score: 2, Funny

      You're obviously not trying hard enough if you only frustrate them a single day with a program.

    3. Re:The tao of programming by OldSoldier · · Score: 1

      I tried teaching my kids programming many years ago and I started with C. Big mistake because the details of doing something as simple as PRINT are confusing and way off topic from the meat of programming.

      Since then I've self-taught myself perl, php and python and those languages, with much simpler print statements, are easier to master for complete beginners. But I am not a complete beginner. I have years of C, C++ and unix shell experience in the telecommunications field. Consequently it's easier for me to learn a new language because I know what languages should do and am frequently just puzzled by the specifics of the local syntax. However, what I've found is that by far the easiest language to learn in this regard is PHP because when I run into one of these problems I google something like "php for loop" and I choose the answer on php.net and I get precisely the answer I'm looking for. A similar search in Perl or Python points me to a generic level page on control structures which requires me to scan the page looking for the for-loop part and in general takes 5 minutes of scanning to find the spot vs zero minutes of scanning for PHP. One interrupts my flow, the other does not.

       

    4. Re:The tao of programming by Jimbob+The+Mighty · · Score: 1
  5. What does the non-techie want to program? by optikos · · Score: 1

    If the nontechie wants to make a webpage or if the nontechie wants to interface with hardware, then the choice of languages and knowledge differ markedly.

    1. Re:What does the non-techie want to program? by HungryHobo · · Score: 1

      if it's just to learn I'd start by showing them something with as low a barrier to entry as possible- just for the basics.
      The first language is of course the hardest.

      Just to learn the basics like loops, variables, etc etc

      On windows that would probably be vbscript(horribly horrible language though it may be) and on a mac or linux it'd be bash.
      Bash would be my preference since the man pages are also there at your fingertips.

      No compilers, no worrying about libraries, no servers, no client connections etc.

      Just open it up with a text editor and bang something quick and nasty out and make a lot happen with a small amount of code.

      I sat down with a friend of mine for a few hours less than a year ago and showed him how to start coding bash on his mac- nothing more than a few basics like loops, variables, arguments etc but it's always that first little step, to simply knowing that you can create a script like that with nothing more than a text editor which makes everything after come easier.

      Since then he's become the "computer guy" at his office- using his moderate coding powers to automate simple and monotonous tasks which waste company time and resources. (in non techie shops there's always plenty of tasks people never even think about automating just because they're not coders)

  6. Simple! by Anonymous Coward · · Score: 1, Interesting

    QuakeC.

    Install Quake, get Progs106.zip and FrikQCC then go nuts making Quake into something that's not Quake. You'll learn a lot of fundamentals from the trial and error alone!

    Hey, it's how the greats started.

    1. Re:Simple! by digitalunity · · Score: 1

      I would love it if someone made a quake mod that loads excel spreadsheets of my choice, pastes the charts on mobs and lets me run around shooting my bosses shitty charts.

      Plzthx.

      --
      You can't legislate goodness. Let each to his own destiny, by will of his freely made choices.
    2. Re:Simple! by deniable · · Score: 1

      Quake as a COM object. You hit a PowerPoint slide and start playing. It could make presentations a lot more interesting. Either that or go and find your recent documents and texture the walls with them.

  7. PostgreSQL a better choice for database by Improv · · Score: 5, Insightful

    I wouldn't start with database stuff until you have a programming language or two mastered, but when you do learn one, learn PostgreSQL. MySQL's SQL flavour is messed up and because their parser doesn't handle relational calculus well, you're stuck with a language that's unusuable for much of SQL without syntactic contortions.

    I wouldn't start with web stuff either - you want a classic programming background (which will be a bit depth-first) to see if you can handle it. If you can't, you probably should find another hobby - the world is full of bad code written by people who don't know what they're doing.

    --
    For every problem, there is at least one solution that is simple, neat, and wrong.
    1. Re:PostgreSQL a better choice for database by Monkeedude1212 · · Score: 1

      That's funny - I thought you were going to mention PostgreSQL over MySQL because of Oracle's interesting takeover leaving the future of MySQL uncertain.

    2. Re:PostgreSQL a better choice for database by Vahokif · · Score: 2, Insightful

      I think MySQL's language is just fine for the kind of thing non-techies want to do.

    3. Re:PostgreSQL a better choice for database by Improv · · Score: 2, Interesting

      Nah - iirc, it's opensource, meaning that if need be, MySQL's development will be reconstituted under other leadership.

      I've had the same issues with MySQL since I first had to use it, partly issues with its parser being ridiculously bad at handling relational calculus (meaning you're stuck with relational algebra if you want your queries to scale, and eventually they will), its SQL dialect being obscene (oh god why do I grant privileges to nonexistent users to make them exist?), it not handling locking well (although it has improved remarkably on this front over the years), and a few other smaller things.

      Of relational databases, I learned Oracle first - maybe this makes my preferences a bit "stuffy", but it's been very rare that I've met systems people who, given a project using MySQL, won't say that they wish they had started it with PostgreSQL, Oracle, DB/2, or one of the other choices people have. MySQL is the PHP of databases.

      --
      For every problem, there is at least one solution that is simple, neat, and wrong.
    4. Re:PostgreSQL a better choice for database by caerwyn · · Score: 2, Insightful

      It is- but *learning* sql via MySQL is a horrible idea. It allows a lot of shortcuts that are both wrong and dangerous if you're not very sure of what you're doing; learners are much better off with *any* database that's more standards-oriented.

      --
      The ringing of the division bell has begun... -PF
    5. Re:PostgreSQL a better choice for database by Frankenshteen · · Score: 1

      Reads like contortions came up because the original question mentions analysis, and mysql - while a dandy persistant data store - isn't much on the analytics. But i'd disagree with improv wrt HTML/CSS. For most; the interweb is what computers are for. The capacity to self publish, maybe even do something revenue generating with slick analysis is a worthy skill. The more that have that, the more info the rest of us get to scrape.

      --
      "It's a doughnut stuffed with M&M's. That way when you finish the doughnut, you don't have to eat any M&M's."
    6. Re:PostgreSQL a better choice for database by petermgreen · · Score: 1

      Nah - iirc, it's opensource, meaning that if need be, MySQL's development will be reconstituted under other leadership.
      That's true however postgresql is much freer than mysql. In particular mysql's client access libraries are under the GPL (with a few exceptions, e.g. for php). So if you want to write propietry apps against it (either now or in the future) you need a license that only oracle can sell you. IIRC at one point they were even trying to claim the GPL applied to the wire protocol.

      It's not an issue for php webapps but it's certainly something to consider if you think your database may ever need to be accessed in other ways or if you are learning a DB with the intention of using it in many future projects.

      --
      note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
    7. Re:PostgreSQL a better choice for database by Vahokif · · Score: 5, Insightful

      Basic CRUD stuff is the same in any variant of SQL, and MySQL has the benefit of being available on free hosting. I think there's a time and place for advocating PostgreSQL, but this is not it.

    8. Re:PostgreSQL a better choice for database by icebraining · · Score: 1

      MySQL Native Driver is a replacement for the MySQL Client Library (libmysql). MySQL Native Driver is part of the official PHP sources as of PHP 5.3.0.

      The older MySQL Client Library was written by MySQL AB (now Sun Microsystems, Inc.) and so was released under the MySQL license. This ultimately led to MySQL support being disabled by default in PHP. However, the MySQL Native Driver has been developed as part of the PHP project, and is therefore released under the PHP license. This removes licensing issues that have been problematic in the past.

      And I think PDO and PDO_MYSQL are also under PHP's license.

    9. Re:PostgreSQL a better choice for database by magarity · · Score: 1

      I wouldn't start with database stuff until you have a programming language or two mastered
       
      I would start with either database or with programming languages. Procedural programming requires a different mindset than the set logic of databases. Experienced professional programmers can have a hard time dealing with database sets properly never mind someone who is trying to just dabble in both.
       
      But to the original question, you could read a simple book on SQL like "Sam's teach yourself sql in 10 minutes (a day)" and actually get a pretty good start compared to a quick start programming language guide. All the major database vendors provide free versions; DB/2, SQL Server, Oracle, even Teradata. The personal editions of Oracle and SQL Server are by far the easiest to set up and jump in, IMO. Database can be a VERY useful tool to a businessperson; even though latest versions of spreadsheets are capable of handling millions of rows this does not mean they are the correct tools. A little database insight can turn convoluted Excel nightmares into something much more manageable and flexible.

    10. Re:PostgreSQL a better choice for database by Improv · · Score: 1

      Oracle must've improved by leaps and bounds - last I used it (some years ago), it was one of the hardest databases to install casually, and its tools were relatively user-unfriendly.

      --
      For every problem, there is at least one solution that is simple, neat, and wrong.
    11. Re:PostgreSQL a better choice for database by magarity · · Score: 1

      Oracle express is pretty much "click OK" to install - the regular oracle is a hassle. Express's browser interface is good enough for casual management and is really simple. SQL Server's management studio that comes the same for Express as Enterprise blows it away but has a higher learning curve.

    12. Re:PostgreSQL a better choice for database by Anonymous Coward · · Score: 0

      DROP TABLE IF EXISTS blah?

      SELECT SUM (c1 + c2) ... is an error if Options is not set to some magic value in odbc.ini file?

      A few samples of retardedness better avoided from the beginning -- MySQL is just retarded, but it just happened to be there at the right time in right place.

    13. Re:PostgreSQL a better choice for database by caerwyn · · Score: 2, Insightful

      Uh, handling of nulls, empty strings, and default values are not the same as in anything else. They're also absolutely horrible practice and encouraging new users to learn them is flat out retarded.

      Also, I very pointedly didn't mention PostgreSQL. I advocated any standards-compliant DB. MySQL does not fit that bill.

      --
      The ringing of the division bell has begun... -PF
    14. Re:PostgreSQL a better choice for database by Anonymous Coward · · Score: 0

      Basic CRUD stuff is the same in any variant of SQL, and MySQL has the benefit of being available on free hosting. I think there's a time and place for advocating PostgreSQL, but this is not it.

      So PostgreSQL isn't available on free hosting? Why is that?

    15. Re:PostgreSQL a better choice for database by Anonymous Coward · · Score: 0

      Don't forget that MySQL has dozens of their own proprietary language extensions on top of standard SQL. PostgreSQL follows the SQL standard much more rigorously.

      So if you're learning MySQL, be careful, you might learn stuff you'll need to unlearn if you use a different RDBMS in future.

    16. Re:PostgreSQL a better choice for database by pjt33 · · Score: 1

      I wouldn't start with web stuff either - you want a classic programming background (which will be a bit depth-first) to see if you can handle it.

      Depends. If your goal is being able to develop small websites, it might make sense to start by building static websites, aiming to write valid XHTML. That way you can get into the mindset of following syntax rules and understanding that just because it compiles (passes the validator) it doesn't mean it works.

    17. Re:PostgreSQL a better choice for database by julesh · · Score: 1

      So PostgreSQL isn't available on free hosting?

      Not many of them, relatively speaking.

      Why is that?

      Because generally they only want to install one database server, and it's hard to get by without offering MySQL (a number of common FOSS PHP scripts depend on it, for example).

    18. Re:PostgreSQL a better choice for database by julesh · · Score: 1

      Nah - iirc, it's opensource, meaning that if need be, MySQL's development will be reconstituted under other leadership.

      MySQL is open source, but its connection libraries are dual-licensed between GPL and a commercial license. You need to be able to offer that commercial license for the product to be useful, otherwise it can only be used by open source software, which isn't a lot of help for most commercial users. Effectively, this means if you fork MySQL, you have to keep the client/server protocol unchanged, which could be a major problem.

      PostgreSQL is MIT-licensed, so the same problem does not apply.

    19. Re:PostgreSQL a better choice for database by Ash+Vince · · Score: 1

      Why is that?

      Because generally they only want to install one database server, and it's hard to get by without offering MySQL (a number of common FOSS PHP scripts depend on it, for example).

      There are actually other reasons too. First is that Postgre is a bit of a joke in the commercial world and very rarely used. It is the same reason that everyone uses windows desktops, it is imply much easier to find programmers who are comfortable with MySQL than with Postgre. Hopefully this will change now that it is ditching its reputation as being too slow for commercial use.

      --
      I dont read /. to RTFA, I read /. to offend people in ignorance.
    20. Re:PostgreSQL a better choice for database by Anonymous Coward · · Score: 1, Insightful

      Basic CRUD just doesn't work in MySQL, unless one uses InnoDB. That's not the only problem, though – lack of verbosity in error messages in particular makes MySQL a bad choice for a beginner.

    21. Re:PostgreSQL a better choice for database by Anonymous Coward · · Score: 0

      Imagine that. No two languages that do things the exact same way. You'd think in a thread for noobs you'd point that out. I like both dbs, but MySQL is by far the most common and most likely the one they'll be using at some point. One has to start somewhere, and the simplest may NOT put them off.

  8. Google is your friend. by Monkeedude1212 · · Score: 1

    Honestly some of the best help online is online follow along Examples by tech experts who want to build a name for themselves. Couple that with the forums that get indexed rather highly and you can read up on a discussion about what you need to do.

    I can't name anything specific because it all depends on the rankings this month. But self teaching yourself is as easy as entering "[what you want to do] Tutorial"

    If anything confuses you in the tutorial, such as terminology, Google that! Need help setting up a compiler, Google that!

    Though I probably shouldn't be plugging Google like that, I think any search engine will do.

  9. In my opinion by IICV · · Score: 5, Insightful

    In my opinion, as someone who's learned a few programming languages in his lifetime, the best way to learn a programming language (or any new technique, really) is to pick a task for yourself using that technique and figure out what you need to do to get that task done. For instance, I learned Javascript primarily because I wanted to query a couple of Sharepoint sites and display the resulting information somewhere else, and Javascript was as reasonable way of doing that as any. I learned Perl because I had a bunch of information in XML files, and I wanted to apply an XSLT transformation to all of them and concatenate the result together (that's also how I started learning XLST). I learned Java Applets because I was bored in a high school computer science class, and decided to make a 2D gravity simulation thing. I learned C++ because my dad had written his own custom version of tcpreplay, and offered me $20 to port it to Windows.

    Just pick something that sounds like fun, figure out how to do it in the language of your choice, and do it.

    1. Re:In my opinion by AnonymousClown · · Score: 1

      I learned C++ because my dad had written his own custom version of tcpreplay, and offered me $20 to port it to Windows.

      And gave you a lesson on outsourcing in the process. ;-)

      --
      RIP America

      July 4, 1776 - September 11, 2001

    2. Re:In my opinion by Araes · · Score: 1

      As an addendum to this, start with something relatively small, where you can see small, iterative improvements and get feedback on how you are doing.

      A small webpage in something as simple as HTML is a decent way to start. From there, add on functionality, maybe something like Javascript, perhaps database queries, or similar.

      Picking an interpreted language, like a script with widely available interpreters, can help this process, as you can achieve appreciable results beyond "Hello World" in a short amount of time.

      From there, you can move on to more complex things, like learning the basic logic patterns, programming patterns, and/or languages which are compiled to hardware specific machine code.

      Basically, don't dive off the deep end too fast, and constantly give yourself information and results so you can be motivated and see how you are doing.

    3. Re:In my opinion by uncadonna · · Score: 1

      I completely agree: the best way to learn programming is to be born to a parent who has programming experience. Given that the world supply of programming experience was probably thirty or forty person-years on the day I was born, I understandably failed at this.

      Your odds are better nowadays, of course, but still you only get one shot at it. What I am trying to say is that your experience is probably still not that helpful for most people.

      --
      mt
    4. Re:In my opinion by IICV · · Score: 1

      I actually meant to include something about that -

      Graphics are your best friends. Stupid little 2D graphics are absolutely the best way to learn a language, especially if you're doing it for the first time - not only can the results be kinda cool, but you usually get almost instant feedback.

      Further, one of the best ways to start learning how to do anything is to take something that already works, and start tweaking it so that it does what you want. I'm sure you can find an example Java program that'll create an applet and draw a circle or something on it - now make the circle move around, make it orbit the mouse cursor, give it a couple of friends, double buffer the applet so that things don't flicker as much... that's kinda how I started making the 2D orbit simulation I was talking about before.

    5. Re:In my opinion by IICV · · Score: 1

      Actually to be honest, my dad never talked about his work at all. When I was a kid he wrote me a little application that would let me pick which game I wanted to play, and one time he showed me the code behind it because I kept on asking him to add more games and he wanted me to do it myself. Unfortunately, like most kids I just went "wtf I don't get it" (I don't even remember if it was an actual C program or if it was just some form of DOS basic) and that was about the end of it.

      Years later, I learned Java in high school, and I guess my dad decided that porting his program would be a reasonable little project for me. It wasn't that hard, but it did show me that programming language skills can be transferable.

    6. Re:In my opinion by uncadonna · · Score: 1

      There's a lot of context you picked up anyway, I suspect.

      --
      mt
    7. Re:In my opinion by SirRedTooth · · Score: 1

      i first learned HTML + CSS (which arguably isn't programming) Then I moved onto PHP and MySQL And finally JavaScript Learning C++ first in my opinion was a pain I tried looking it at it before I started programming at all and I was utterly confused (I was only 14 :D) But now I can easily grasp C++ thanks to all my experience with PHP and JavaScript

  10. They shouldn't by jawtheshark · · Score: 3, Insightful

    No, really... They shouldn't. Programming is a way of thinking, computer science even more so and if you haven't got that way of thinking, you shouldn't touch it. I'm really sorry. My wife doesn't understand a thing I do professionally (but it brings in the bucks, so we can eat) and I tried explaining. It just isn't her world and even the basic maths behind it are beyond her. Of course, I don't understand a thing about art, which is her thing.

    This is akin to the question "I have $YOUNG_FAMILY_MEMBER who likes to game, how do I get him/her programming." You don't... Unless they show real interest it's a waste of time.

    --
    Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    1. Re:They shouldn't by Anonymous Coward · · Score: 0

      I agree, you really have to have to grow up into wanting to program. This usually develops from gamers wanting to mod games, but also want to explore even further than modding. Relatively, it's kind of easy to write a program that changes the files of another program.

    2. Re:They shouldn't by MikeFM · · Score: 2, Interesting

      I think it really depends if they want to learn and are capable of grasping the material. I'll agree that not everybody can learn programming, it really takes a certain way of thinking, but I wouldn't say that trying wouldn't be useful. Even for people that ultimately are not going to be able to be programmers it is good to have some understanding of what goes on. Maybe then we can stop getting clients/employers that think it's like pulling up a word processor and typing a few buttons.

      I think it was Rudy Rucker that said programming is like building a house of cards with invisible cards. There is some truth to that idea.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
    3. Re:They shouldn't by mrbene · · Score: 2, Insightful

      Have to heartily agree here. I'm a techie, I understand code easily. It's natural for me.

      However, I do agree with the OP that people in not-directly-technical roles should have more confidence with technology. Whether this comes from mucking around with SQL or HTML, or from just learning that most mistakes can be undone with ctrl-z, I think that gaining confidence through doing something that they actually want to accomplish is excellent.

      For example, I gained confidence in home improvements by actually doing them - doesn't matter what, specifically. I know that I'll never use these skills to help feed my family - expecting that an amateur such as me can compete with folks who have actual training is idiotic - but I do know when to call the experts, how to call their bluffs, and when I can save myself some bucks by doing it myself.

    4. Re:They shouldn't by mysidia · · Score: 2, Insightful

      "Computer science is no more about computers than astronomy is about telescopes." --Edsger Dijkstra

      You don't have to be a computer scientist to write a program or learn programming.

      Computer programming is a vocational skill. Programming is not computer science.

      Although methods of computer programming, and algorithms are subjects of study in computer science; practitioners / engineers do not require a knowledge of CS, only knowledge of the right APIs for their environment (which implement the algorithms), common practices in the language in their industry, and the assistance of a software architect.

    5. Re: They shouldn't by Black+Parrot · · Score: 1

      No, really... They shouldn't.

      Yeah, the question seemed a bit ill-formed. If you can program you *are* a techie, so it might sound like asking how a non-techie becomes a techie. But it was phrased as if the person in question would remain a non-techie.

      --
      Sheesh, evil *and* a jerk. -- Jade
    6. Re:They shouldn't by jawtheshark · · Score: 1

      I'm a computer scientist myself, and if you had passed reading comprehension, you'd note that I was talking about a "way of thinking". The way of thinking for programming and computer science are the same. I know computer science is way more than just programming.

      That said, I have seen code by people who have no clue about complexity analysis and are programmers but not computer scientists. It ain't pretty...

      In this context, the issue you try to bring up (people mixing up computer scientists with programmers) is a non-issue. Believe me, I'm the first in line to say that Dijkstra was right in his quote, because he is: computer science is nothing more than maths and can be done without touching a computer. However, the mindset of how to think about problems, the way you tackle a certain problem are identical... well, if we're talking about competent programmers that is. (There are plenty of lousy programmers who actually are computer scientists too.... I'm aware of that too.)

      --
      Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
    7. Re:They shouldn't by Planesdragon · · Score: 0, Flamebait

      No, really... They shouldn't. Programming is a way of thinking, computer science even more so and if you haven't got that way of thinking, you shouldn't touch it. I'm really sorry. My wife doesn't understand a thing I do professionally (but it brings in the bucks, so we can eat) and I tried explaining. It just isn't her world and even the basic maths behind it are beyond her. Of course, I don't understand a thing about art, which is her thing.

      Don't take this the wrong way, but... you and you wife are idiots.

      I have no idea how to do my wife's job, but I understand it, and in a pinch I could probably do the basics. She doesn't know how to do MY job, but she also understands it--and even does some in a pinch for her own hobbies.

      You trying to explain to your wife what you do and failing is not an indicator that it's generally a bad idea. Hell, Occam's @#Q$Ring Razor suggests that, when a teacher fails to teach a student, the probably most likely lies in either the student or the teacher, not the basic idea of teaching.

    8. Re:They shouldn't by SpazmodeusG · · Score: 1

      Yes, it is a way of thinking but that's a reason it should be taught. Even if they are a non-techie and never going to become a programmer there's still merit in teaching them a new way of thinking. Anyone can learn the basics and as most programming books illustrate it's really no different than creating a recipe. So it really is a good idea to teach people the basics of programming.
      Especially in this case where people are asking to be taught.

    9. Re:They shouldn't by demonlapin · · Score: 1

      He's asking about technical skills, not ways of thinking.

    10. Re:They shouldn't by TheLink · · Score: 2, Interesting

      > the way of thinking for programming and computer science are the same.

      Similar. There are a lot of differences. It's like math vs engineering. Yes engineering does involve math, but most engineers don't actually spend that much time doing math in the real world.

      A programmer could spend a fair bit of time thinking on topics like:
      0) What's the "fastest" and "OK enough" way to _write_ the code (CS on the other hand is typically more about the best way the code should do stuff).
      1) How can a hacker or user screw this up. How do I stop it?
      2) What sort of exceptions/interrupts are possible at this point and what should be done about them?
      3) Is this library portable? Is it ok to assume recent enough versions of it are available on every system, or do I bundle it (and check licensing).
      4) Should I bother making this configurable? What's a suitable default value?
      5) WTF do I name this item (variable, object, method, module, lib etc)?

      I'm sure the more experienced and good coders out there can provide more and better examples.

      And from what I see, most computer scientists hardly ever think about stuff like that. Maybe a few might descend from their ivory towers to touch on such mundane topics from time to time. ;)

      > I know computer science is way more than just programming.

      And programming is way more than computer science.

      There's overlap, but you can be a top computer scientist without being able to write a multiplayer game engine that's even half as good as the current ones on the market - easy to be licensed out to 3rd parties, performs well, great features, not ridden with security flaws etc.

      And you might be a good programmer without being able to create sorting algorithms even half as good as the current ones known. You'd probably just look for convenient and suitable preexisting library/algorithm for your purposes. After all if the product is not out of the door soon enough, there may be zero customers to enjoy the benefits of your fancy latest research sorting algo.

      Yes there's some overlap but they are two rather different fields. Then again to most people it's "Geeky/Nerdy" stuff, so depends on how far back you stand... :)

      --
    11. Re:They shouldn't by Anonymous Coward · · Score: 0

      Don't take this the wrong way, but... you and you wife are idiots.

      YOU'RE an idiot. And an asshole for prefacing that crap with "don't take this the wrong way." How exactly should people take to insults?

      I have no idea how to do my wife's job, but I understand it, and in a pinch I could probably do the basics. She doesn't know how to do MY job, but she also understands it--and even does some in a pinch for her own hobbies.

      Then you and your wife are lucky to be on the same page. Surely in your experience in dealing with co-workers and other people, you have noticed that some people are just not cut out for some vocations?

      Yes, you can force it - through hours relentless drilling, a determined teacher can make just about anyone "get it" eventually, but the results are generally unsatisfactory for both the teacher and student. This guy's wife is not an "idiot" just because her mind doesn't work like his.

  11. Funny you should ask... by Anonymous Coward · · Score: 1, Interesting

    Funny you should ask...

    I was just watching a video or 7 at the Khan Academy, and I was saying to myself "Wow, it would be so easy for me to make 10 minute lectures about one of my chosen programming language!". As a collective, we could probably simplify all sorts of compsci information!

    Other than that, I know a few colleges have free courses online. Like the MIT free course material. I'm sure someone more informed here could provide you with some top-notch links.

    1. Re:Funny you should ask... by Mordok-DestroyerOfWo · · Score: 0, Offtopic

      Khaaaaaaaaaaaaaaaan!

      --
      "Never let your sense of morals prevent you from doing what is right" - Salvor Hardin
  12. Let the nerds do that... by Anonymous Coward · · Score: 0

    The real money isn't in coding, it's the ideas. Just think of an idea and hire someone to code it for you.

  13. Division of labor? by Anonymous Coward · · Score: 0

    Why not stick to whaterver you are doing? I have no need to learn how to be an amateur accountant, because I am a professional programmer. If you are a "non-techie", be the best "non-techie" you can be and leave the technical stuff to the "techies". You will save yourself frustration and the money you will have to pay a professional to fix it later.

    1. Re:Division of labor? by David+Greene · · Score: 2, Interesting

      This is much too limiting. Changing careers can be a wonderful thing for people. I know someone who had no technical background and went from managing developers to being a developer and it was a great change for her. She found work to be more interesting, the problems challenging and finding solutions gave her a sense of accomplishment. In other words, a career change was much more fulfilling than simply sticking with what she knew.

      And she did it around age 50.

      --

    2. Re:Division of labor? by Anonymous Coward · · Score: 0

      Good god what a load of horseshit. I suppose since you're not a professional accountant you should be discouraged from balancing your own checkbook. Or if you aren't a mechanic, no one should teach you to change your own oil. Grow the fuck up.

    3. Re:Division of labor? by Anonymous Coward · · Score: 0

      Speaking as a person trying to repurpose myself into IT right now, exactly how did she go about doing that successfully?

    4. Re:Division of labor? by David+Greene · · Score: 1

      Well, she had relationships with people from doing work in her former position. It helps when you know most of people in the group you're transferring to. I think she may have taken some training courses at company expense, but I'm not sure. The most important thing is that she worked for a company and management that let her try.

      --

  14. Go ask Alice by Zecheus · · Score: 1
  15. What do you want to learn? by Anonymous Coward · · Score: 0

    To make fancy webpages, or the general art of programming?

    If it's the former, grab one of the 5000000 PHP+mysql books and go to town on it.

    If it's the latter, then you have your work set out for you. I'd suggest The Art of Programming but mostly I use it to scare people off. In reality you'll want some kind of quick overview of different programming paradigms (procedural, functional, object-oriented) and the various ways different languages achieve those paradigms (for instance, Java's class-based OO vs JavaScript's prototype-based OO) Then once you've decided what buzzwords you wish to comply with, locate books explaining how to develop buzzword compliant software.

  16. I like the PHP suggestion. by hkz · · Score: 1, Insightful

    I like the suggestion to use PHP, it's perhaps the closest we have to oldfashioned BASIC. You hardly need anything to get started, apart from web hosting, an FTP client and Notepad. The language is well documented, its error messages are often helpful (except for that crazy hebrew one), and you get immediate reward and feedback when you refresh the page. It also has real world uses. Programming goes naturally from there, if you're curious and stick with it.

    1. Re:I like the PHP suggestion. by Anonymous Coward · · Score: 0, Troll

      I like the suggestion to use PHP, it's perhaps the closest we have to oldfashioned BASIC.

      And just like BASIC, most programmers who start out in PHP never move past writing spaghetti-laden cuntpaste code.

    2. Re:I like the PHP suggestion. by Twinbee · · Score: 1

      You don't even need webhosting or an FTP client if you use EasyPHP - just go through localhost in your browser:

      http://www.easyphp.org/

      Otherwise it's a pig to keep reuploading to test for bugs etc.

      --
      Why OpalCalc is the best Windows calc
    3. Re:I like the PHP suggestion. by ojustgiveitup · · Score: 3, Insightful

      This seems to be the basic content of ~80% of replies in this thread. Acknowledging the danger of being accused of fanboi/hater-ism, I simply don't get what makes PHP good for beginners. All criteria you've mentioned are true for all modern web stacks. Let's take python for instance (even though I think ruby is in fact easier for beginners, it seems Slashdot is a ruby-hostile crowd) - hosting, check - well documented (disagree that PHP is but ok...), check - error messages (the fact that there even *is* a crazy hebrew one in PHP makes this laughable but ok...), check - immediate reward and feedback when you refresh a page, check - real world uses, check - natural learning curved towards better/more advanced programming, check times a bunch over PHP. It is also far more readable and consistent, does not encourage shoot-yourself-in-the-foot-isms to the extent of PHP, has generally better libraries, a very similar scalability and performance story, and equivalent if not better frameworks surrounding it. So I ask - what actually makes PHP better for beginners? Is it just because we all began our web programming in PHP so we think that's the right way, or does it actually have redeeming points? Now, Drupal and Wordpress are a couple of the most excellent and hit-the-ground-runningest of the world's myriad content management systems, so if that's what we're talking about then yes, by all means, use one of those to spin up an easily extensible site or blog very quickly and bring PHP along for the ride, but I see no reason to start from *scratch* with PHP. (Not meaning to flame, though it comes off that way - I'm very curious what you (or anyone else) believe makes PHP easy for beginners.)

    4. Re:I like the PHP suggestion. by quickOnTheUptake · · Score: 1

      You hardly need anything to get started, apart from web hosting, an FTP client and Notepad.

      Compare that to say, perl where all you need is . . . perl, or c where all you need is gcc (or any other compiler).
      The point being: web hosting is not something the average non-techie has sitting around for when he decides to give it a go, nor is it something he is going to be likely to get in a matter of minutes.
      If you have a half-decent linux distro you have the tools to start writing c, c++, perl, or python on your computer right now, if you don't have a decent distro, those tools are a command away. If you are on windows, all bets are off, but none of it should be hard to install.
      Even compare that to html/css/js where you can start making stuff that does stuff without installing anything that doesn't come standard on almost any operating system a non-techie could find, and without even being hooked up to the net.

      --
      Mod points: Guaranteed to remove your sense of humor.
      Side effects may include gullibility and temporary retardation
    5. Re:I like the PHP suggestion. by Anonymous Coward · · Score: 0

      Perl was huge 15 years ago and PHP was big 10 years ago but Ruby or python have always been also-rans. Javascript is the language of the web, server-side try node.js or try google's go.

      The language for systems programming is C, the languages for serious application programming are C, C++ and ObjC. Worthwhile embeddable scripting languages are lua and javascript.

      When it comes to real world projects, that's about it really.

    6. Re:I like the PHP suggestion. by Anonymous Coward · · Score: 0

      In that case I would suggest Python, since it has many of the same benefits and the syntax is nicer.
      But I don't think it really matters that much, *as long as* it isn't one of the foot-shooting languages (C, C++, I'm looking at you). Also things like Lisp or Prolog are perhaps not that bright of an idea.
      And if the goal is to learn to program, than HTML and CSS should come much later, they'll start to become useful when you want to program a web service of some sort. Although it has been said that JavaScript + HTML can be an okay beginner language as well.

    7. Re:I like the PHP suggestion. by inKubus · · Score: 1

      The python wiki does an ok comparison.

      The bottom line is that PHP can be very casual and python can be very scientific. So for someone that wants to whip up a web page, PHP is what I'd recommend. My bias is I'm from a C background and the curly braces are nice. I don't like having to adhere to a particular format to make the language work, make huge long lines, or use weird line-continuation separators. That's also what I hated about VB.

      if(1)
      {
      dothis; dothisalso;
      alsothis; this; thistoo;
      andthis;thisone;thisalso;andfinallythis(
      "with",
      "this","parameter" ,"because"
      )
      ;
      }

      --
      Cool! Amazing Toys.
    8. Re:I like the PHP suggestion. by julesh · · Score: 2, Informative

      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.

    9. Re:I like the PHP suggestion. by Anonymous Coward · · Score: 0

      The world does not need another crappy php "developer".

    10. Re:I like the PHP suggestion. by ojustgiveitup · · Score: 1

      I thought we were talking about good languages for beginners? If so, I think the size of the community is only relevant if there is not enough documentation or code to read - definitely not the case for either ruby or python. Now, if we want to enter the realm of professional programming, I agree that the number of able and available programmers for a given language is a very important concern. I personally think both python and ruby have sufficiently sized communities to be worthwhile, but certainly not the size of any of the other languages you mention (well, more than ObjC, but that's a bit of a special case, eh?). In any case, we don't need to saddle beginners with the same boring concerns we have when choosing technologies for professional work. (Also, you missed C# and Java for app and server side web programming - both are far from irrelevant - and I agree that node.js is very interesting and the future of server-side may well be javascript)

  17. !Programming by StikyPad · · Score: 2, Insightful

    What you are describing is not programming; it's web design and database administration. They may contain elements of programming, and they're both (typically) done on computers, but they're generally regarded as separate skill sets these days.

  18. How to start programming in PHP by Anonymous Coward · · Score: 1, Funny

    How to start programming in PHP:

    Step 1: remove half your brain
    Step 2: enjoy how clearly documented the standard library now seems

    For .Net, the instructions are similar, but you take out the other half too.

  19. Just the basics.. by MikeFM · · Score: 1

    You might start with something like Scratch to learn the concepts.

    Then I'd dive into PHP or Python. PHP is good because you feel like you are really doing something since it shows up on the web. Python on the other hand produces faster programs and has a very clean syntax. HTML, Javascript, and CSS are good if you're learning PHP anyway but do yourself a favor and avoid mixing HTML, CSS, Javascript, SQL, and PHP together. Learn to separate your code right from the start. SQL is always useful to know and has the benefit of a different prospective on coding. Likewise I suggest learning LISP and Prolog as they'll widen your horizon and can give you some powerful tools that many programmers don't have.

    Eventually you might want to look into C, C++, Objective C, Assembler, Postscript, and shell scripting to round out your experience. Also you want to read some books on data structures, algorithms, and design patterns. Knowing how to write code doesn't make you a programmer anymore than speaking English makes you a brilliant author.

    --
    At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  20. Nontechnical people by Anonymous Coward · · Score: 0

    — for example marketers

    Pardon me while I throw up into my mouth.

  21. Do you have a specific goal in mind? by rolfwind · · Score: 1

    It really depends on what exactly you want to do and what you have. Apple's automator will be good to learn some things. Those Lego kits are a great way to combine programming with real world results and not just get on screen results. Dylan is an easy language. Scheme is more to teach language theory. Lisp is a diiferent way to think of things. C is the great-granddaddy of the other major family of langaues and need-to-know if one gets into programming. Later major languaes will be a hybrid of ideas between these two language families. There are lesser used languages that try different ideas.

    But, what is the end-goal? The summary mentions a lot about web design and HTML but then says that's from and earlier thread. Programming won't teach you about web design (not much anyway). Web design only dabbles a bit in programming if it's limited to HTML/CSS. SQL is another thing (databases). And "learning technology" can range from learning to navigate your basic desktop to making spreadsheets to designing simulations in C, etc.

    It's hard to get candy here without a pinata to hit.

    1. Re:Do you have a specific goal in mind? by MikeFM · · Score: 1

      Automator is actually pretty awesome. Yesterday fricken iTunes got stuck wanting me to hit 'Replace', for each of the 2000+ iOS apps I have, when cleaning up my library. No cancel button. No do for all button. (Doh. C'mon Apple iTunes is so beneath your standards.) I pulled up Automator and recorded clicking the button and told it to loop over it. In a couple seconds I had a script that kept pressing that damn button until it was done. So Apple sucks for iTunes but is awesome for Automator.

      Most web designers don't know how to design a web page either. Explaining the many bad web sites.

      --
      At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
  22. Q: How should a non-techie learn programming? by aaaaaaargh! · · Score: 1

    A: The same way as a techie. Long answer: Learn C, Haskell, Scheme, or whatever suits your needs by writing a lot of small to mid-sized programs. Learn about data structures and how they are internally represented on your machine. Sit down and actually do something instead of messing around with drag & drop RAD tools. That's how you learn it. (In my opinion, at least.)

    1. Re:Q: How should a non-techie learn programming? by ojustgiveitup · · Score: 2, Insightful

      Hmph. This reminds me of a recent article about how the author had been scared off of Vim numerous times because people kept telling him to turn off his arrow keys, don't use "simplified" versions like GVim or MacVim, etc. No. This is wrong-headed. We don't teach people number theory right off the bat because that's what "real" mathies work in, why would we teach non-technical people C and (good lord!) Haskell just because that's what "real" techies use? These are great, useful languages, and there is plenty of time to learn them, but learn something simpler first. Scheme is a great suggestion, but you throw it in the list with the other two like they're all equally good for learning - they aren't. Scheme, Smalltalk, Python, Ruby - these are all simple languages with great depth to them with (especially the first two) wonderful teaching-oriented communities surrounding them. Agree with the sentiment that D&D tools, like how most people learn Visual Basic for instance, give a pretty skewed view of what programming is about and are not great ways to learn.

    2. Re:Q: How should a non-techie learn programming? by sarkeizen · · Score: 1

      I don't buy it...

      The concept of 'learning languages' that is - that is there are languages that lend themselves to learning programming in general. I' wrote code as a hobby for about 12 years and after university I did it for 16 years professionally. I now manage a team of developers. Without a specific problem (i.e. writing a web application, writing a driver, etc..) I would expect any of these languages would do.

      In my humble opinion, the point of learning to *program* as opposed to learning to operate an application (which is closer to what drag and drop environments are) is that you have learned how to approach a problem solving by using algorithms and in the end you possess a set of "mental tools" which allow you to approach any decidable problem.

  23. what do they want to do? by Chirs · · Score: 2, Informative

    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).

    1. Re:what do they want to do? by Anonymous Coward · · Score: 0

      Rainbow magazine and Tron FTW :)

    2. Re:what do they want to do? by ojustgiveitup · · Score: 1

      Seems to me the implication of the poster is that they want to get ramped up quickly doing things that people can use easily, soooo... no, not kernel hacking or high performance networking or high reliability system design. You're right about iP(hone|ad) apps, Android apps, web apps to run on those and other mobile platforms, web apps to run in normal browsers, javascript games, facebook games. Actually looking at that list it's fairly obvious where to start - javascript (and I would go ahead and add jQuery right from the get-go).

  24. configurable software toolkits, e.g. Excel by peter303 · · Score: 1

    These are sometimes called application specific systems (or in the old days 4th generation languages). The toolkit provides a lot of useful pieces like data types, input and output, pre-programmed routines. You then connect the dots. For example a spreadsheet is a table-oriented formula translator. Simple table operations are pretty easy to program. But you can get arbitrary hairy with all the extras they supply. At some point Excel programming would become too obtuse. Then you would drop out of such a system into a more general programming system.

    Mathematica or Mathlab is another example. They are oriented into translating mathlike formulas into other formulas. Then inserting ranges of numbers and obtain graphical outputs.

    1. Re:configurable software toolkits, e.g. Excel by Dr+Max · · Score: 1

      Mathematica or Mathlab is another example. They are oriented into translating mathlike formulas into other formulas. Then inserting ranges of numbers and obtain graphical outputs.

      I think he means matlab.

      --
      Rocket Surgeon.
  25. Because every journy has a first step... by Anonymous Coward · · Score: 1, Funny

    Start with what a lot of old pharts did, buy a cheap Apple II from fleabay and start coding in Applesoft BASIC... (Commie64 is for 1053r5)

  26. Code Reviews by Anonymous Coward · · Score: 0

    Pick a project, do it to your satisfactions, and then post it for others to review & give feedback.

    Learning from constructive criticism is a big part of learning programming.

  27. Re:Why should a non-techie learn programming? by squidfood · · Score: 1

    Car analogy alert: Why should a non-mechanic driver learn the basics of internal combustion and what the spark plug thingie does?

  28. Re:Why should a non-techie learn programming? by nobodylocalhost · · Score: 4, Insightful

    Small business want to save money by making websites on their own... unfortunately they don't have the know how nor the time to do it. Rather than learning to program, i would suggest learn to spot the technical BS. It is far better to pay a professional firm that does design and site programming since they are less likely to open some blatant security holes to the world. Knowing how to program does not equal knowing how to program well. When your livelihood is on the line, spending couple hundred bucks is much cheaper than having your business go under because the site you wrote over the weekend got hacked by some automated drone and all your client info were stolen.

    --
    Where is the "Ignorant" mod tag?
  29. Please don't start with databases by Anonymous Coward · · Score: 0

    Database programming is the most boring shit ever. If you take a newbie and introduce him or her right away to database programming, he/she will probably decide that it's not worth the trouble to learn.

    Start with something simple and straightforward -- learning basic imperative-paradigm programming with a language like Python (but s/Python/$language/). Creating programs that do cool things all by yourself is MUCH more fun and empowering than using someone else's database software to look up records from someone else's database. Once the non-techie has learned that, you can move on to discussing databases or HTML/CSS or whatever. But for goodness' sake, don't start with them.

  30. Don't. by Anonymous Coward · · Score: 0

    Should a non-physician learn medicine and practice it? Should a non-lawyer represent themselves in court? Both happen with disastrous results.

    If you need an application for your business, hire one of the thousands of good freelance software engineers out there and get a solid, well-build application. Save yourself the time and trouble of learning "programming" and stick to whatever it is you are good at doing. Leave the development to people who make it *their* business to understand the intricacies of software security, language nuances, database design, software testing, design patters, accessibility, user interface guidelines, etc...

    _pax74

    1. Re:Don't. by trentfoley · · Score: 1

      I absolutely agree.

      If a person is not technically inclined, programming is the last thing they should practice. Much like a dyslexic should not get a job as a proof reader, or a mathematically challenged individual should stay away from physics.

      Also, as another post stated, the technologies listed (web design, database, scripting) are not true programming.

  31. Basic scripting? by betterunixthanunix · · Score: 1

    Why not look at a language like, say, AWK? Really basic, great for creating useful filter programs, and fairly widespread.

    --
    Palm trees and 8
  32. Plethora of Options by cosm · · Score: 5, Informative

    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 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 website is a good starting point for all things web.

    5. Chrome Experiments 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 of Visual Studio are a greating starting point for a newbie, at zero price-point, and bundled with SQL Express, thats a good place to begin.

    7. Also, places like CodeProject, StackOverflow, and CodePlex 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.

    --
    'We are trying to prove ourselves wrong as quickly as possible, because only in that way can we find progress.' RPF
  33. introductory course at community college? by peter303 · · Score: 1

    The way a lot of techies learn it is to take a programing course in junior high school or high school. Then they may go off on their own and develop these skills further.

    I've seen the same kind of courses offered at community colleges. Some techies like myself can read an instruction manual and just do it. Other people prefer the structure of a taught course.

  34. Re:Why should a non-techie learn programming? by Kral_Blbec · · Score: 3, Interesting

    Very good point. I contest the claim that "If you can throw up a small website or do some real number-crunching, chances are those skills will help you feed your family. " IMO its more likely to just be a black hole of time and resources.

  35. Training my apprentice... by Anonymous Coward · · Score: 0

    With my apprentice, I told him with no preparation to create something in Quartz Composer (a graphical programming interface for OSX) that is hard, but within its capabilities. I then would answer any 'how do I' questions in algorithmic terms, as opposed to making a solution for them. If he gets frustrated, I explain with diagrams and further detail, and might create an example - though I will not let him take away reference implementations himself. This has the benefit of him learning how to solve problems, get aid, and convert algorithms and specifications to an implementation to get a result.

    After those foundations in place, it's simple enough to replace graphical blocks with known blocks of code to duplicate their functionality, until the blocks and instructions get smaller, and smaller, and smaller - until you're at PHP, C, or Assembly level... depends how far you want to go.

  36. learn the standard way by NynexNinja · · Score: 1, Interesting
    1. Re:learn the standard way by interval1066 · · Score: 5, Funny

      High School/Jr.High

                      10 PRINT "HELLO WORLD"
                      20 END

      First year in College

                        program Hello(input, output)
                          begin
                                writeln('Hello World')
                          end.

      Senior year in College

                        (defun hello
                          (print
                            (cons 'Hello (list 'World))))

      New professional

                        #include
                      void main(void)
                        {
                          char *message[] = {"Hello ", "World"};
                            int i;

                            for(i = 0; i = 0) {
            while(defined($arg=shift(@ARGV))) {
                $outfilename = $arg;
                open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
                print (FILE $msg);
                close(FILE) || die "Can't close $arg: $!\n";
            }
        } else {
            print ($msg);
        }
        1;

      Experienced Hacker

        #include
        #define S "Hello, World\n"
        main(){exit(printf(S) strlen(S) ? 0 : 1);}

      Seasoned Hacker

        % cc -o a.out ~/src/misc/hw/hw.c
        % a.out

      Guru Hacker

        % cat
        Hello, world.
        ^D

      New Manager

        10 PRINT "HELLO WORLD"
        20 END

      Middle Manager

        mail -s "Hello, world." bob@b12
        Bob, could you please write me a program that prints "Hello, world."?
        I need it by tomorrow.
        ^D

      Senior Manager

        % zmail jim
        I need a "Hello, world." program by this afternoon.

      Chief Executive

        % letter
        letter: Command not found.
        % mail
        To: ^X ^F ^C
        % help mail
        help: Command not found.
        % damn!
        !: Event unrecognized
        % logout

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    2. Re:learn the standard way by Anonymous Coward · · Score: 0

      More like;

      SQL Injection
      XSS
      PCI Compliance

      Why would anyone need to know x86 ASM to build some shitty website?

    3. Re:learn the standard way by ojustgiveitup · · Score: 1

      Eek! Makes me wonder if you're 1) trolling, 2) realize that's absurd but think it's 1337, or 3) think it actually makes sense. Whichever it is, these people have *no* use for asm or tcp/ip, little use for C, and should learn something simpler than PHP, like Python. Maybe a good list for their next iteration through the "what now?" knowledge acquisition loop though, if you reversed the order. Also, I would note that a great way for non-technical people to actually understand how computers work, perhaps on their path toward your number (1), would be Petzold's Code.

    4. Re:learn the standard way by ChrisMaple · · Score: 2, Informative

      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.

      --
      Contribute to civilization: ari.aynrand.org/donate
    5. Re:learn the standard way by quercus.aeternam · · Score: 4, Informative

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

    6. Re:learn the standard way by Bing+Tsher+E · · Score: 1

      these people have *no* use for asm or tcp/ip, little use for C

      1. Which people?

      2. How do you know?

      Some of us don't even consider Web Design to be programming.

    7. Re:learn the standard way by interval1066 · · Score: 1

      ...but I got the +5 mod.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    8. Re:learn the standard way by Anonymous Coward · · Score: 0

      totally wonderful!!!!

    9. Re:learn the standard way by russotto · · Score: 1

      And what hurts about that is I immediately understood the "11H" in the format statement. Someone fit me for a walker.

    10. Re:learn the standard way by Anonymous Coward · · Score: 0

      I write all my code in K&R C and name all functions and variables using a single ASCII char. When I run out of names I know it is time to modularize and maybe create b.c.

      My comments are in the form of citations eg. ++q; /* 24:12 */ tells you to look at page 24 line 12 of the original K&R to understand the line.

      Since I do this nobody has tried to pass my code as their own.

    11. Re:learn the standard way by Anonymous Coward · · Score: 0

      Old School:

      .MODEL Small
      .STACK 100h
      .DATA

            db msg 'Hello, world!$'
      .CODE

      start:

            mov ah, 09h

            mov dx, offset msg

            int 21h

            mov ax,4C00h

            int 21h

      end start

      I just found this too: Hello World

    12. Re:learn the standard way by Anonymous Coward · · Score: 0

      The principles of an assembler and its relation to hardware is important, the minefield that is the x86 design is discouraging.

      If you are not overly concerned about last ounce performance and you are doing user programming (not OS kernel type stuff having to deal with pagetables, context saves, 32-bit protected mode idiocy and other x86 system shit), x86 is one of the most user-friendly architectures out there, for example it has a bajillion useful kitchen-sink single instructions and addressing modes...

      Consider that CISC architecture's original selling point (and need) was that it was a relatively "high-level" instruction set with complex instructions for humans to target. Are you really going to tell me that coding for a SPARC or Itanium (or even PowerPC for that matter0 in assmebly is easier than their CISC predecessors?. ARM and MIPS I'll give you (to a point)... And there are other "user-friendly" RISCish designs, but that is often a very secondary concern for many mainstream RISC designs.
      The argument for RISC was really simplicity as some laypeople wrongly assume (OOO hardware is complex no matter the ISA (which is one reason why x86 prevailed despite its flaws.. the x86 ISA these days is essentially bytecode and there is an interpreter frontend in hardware, the complexity is elsewhere)).. it's reduced not simple.. and complex refers to amount of complexity in implementing the instructions themselves and what they do, not the complexity in using them.. the rationale was efficient scaling (more hardware flexibility), the ability to pipeline (something true CISC can fundamentally not do) and the observation that optimizing to complex instructions suitable for high level assembly didn't gain much.

      The x86 is shit in many ways, but user-mode programmability convenience isn't actually one of them.

      Also, you must not get around much in the C world if you think the K&R book was never updated since 21 years ago. Harbison and Steele is also good.

    13. Re:learn the standard way by julesh · · Score: 1

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

      From the preface of the first copy of K&R found by the search the OP posted:

      "This Second Edition of The C Programming Language describes C as defined by the ANSI standard."

    14. Re:learn the standard way by ojustgiveitup · · Score: 1

      1. The people referred to in the submitter's question. 2. They are non-technical people who only want to spin up something useful quickly - regardless of your biases, the web (or perhaps mobile) is their game. I'll take your bait - if you are writing code that makes a computer execute in a particular way, you are programming. Your view is very narrow and pointlessly insulting to many people. Perhaps re-think it?

  37. But why? by Anonymous Coward · · Score: 5, Insightful

    They shouldn't .... small business owners dont feel pressured to learn plumbing - they hire a plumber.

    1. Re:But why? by demonlapin · · Score: 2, Insightful

      Virtually every small business owner does small things themselves to save money. Not every plumbing problem needs a plumber; sometimes you just need Drano, or you just need to snake the pipe. I don't try to fix my air conditioner, or my main sewage line out of my house, but if you can't handle the P trap in your sink, you're at the mercy of anyone who wants to screw you. I'm not a mechanical engineer, but I can change my own oil. (I don't, because I hate crawling under a car and I can easily afford $30 for a car wash and oil change every 3-6 months. But I can.)

    2. Re:But why? by LodCrappo · · Score: 3, Insightful

      if the OP was asking how to learn some basic PC maintenance, save on a couple easy repair calls, maybe even set up a simple LAN, sure. but he is asking about how to do things that are well beyond the skill level of a "handy guy". if he is unable to distinguish between the "simple fix, save a buck" stuff and the "you probably suck if you haven't been doing this every day for 10 years, and maybe even then" stuff... well all the more reason to discourage him from going further.

      --
      -Lod
    3. Re:But why? by remus.cursaru · · Score: 1

      And if they try, they end up doing stupid things.

    4. Re:But why? by Anonymous Coward · · Score: 0

      And exactly what part of programming do you consider to be equivalent to changing the oil on your car? Its logic like yours that will lead to the next Slashdot headline reading "20,000 Credit Card Numbers stolen from smallbiz.example.com".

    5. Re:But why? by HBoar · · Score: 1

      What utter nonsense. Why do you assume he is a moron? He may not be able to code up anything huge and amazing after one week of learning, but a little messing around with programming can get you a long way.

      I'm a mechanical engineer, not a programmer. However, there have been many times where I have used my small amount of knowledge in programming in C or even VB to solve everyday problems in a quarter of the time that someone who was unable to program at all would take. One of the first things that learning about a subject will teach you is to recognise when your skills are inadequate anyway. When/if that point is reached, he can either get help or learn more, either way will work.

    6. Re:But why? by LodCrappo · · Score: 1

      why do you assume your personal experience is meaningful here?

      most small business owners stay out of programming not because they are morons who couldn't do it, but because their time is one of the most valuable resources the business has. spending it doing things that can be done better and in less time by an expert is probably a mistake, unless hiring the expert costs a fortune. hiring a programmer does not cost a fortune.

      the world you come from and the world of a small business owner are quite different.

      --
      -Lod
    7. Re:But why? by demonlapin · · Score: 1

      A shell script that I use to manipulate a few text files, or a little VB macro in Excel, is what I'm thinking of. Nothing public-facing.

    8. Re:But why? by CodeBuster · · Score: 1

      The AC has a point. There may be some value in knowing enough about technology to have a cogent discussion with the professionals who are doing the actual work and understand generally what they are talking about when they mention certain technologies and how they are going to be used in the project. However, the field of professional software development is a complex and knowledge intensive undertaking that does not lend itself well to dabblers. The business owner or entrepreneur specializes in running and starting businesses, not writing software or designing websites. His efforts are best spent within his own area of expertise, not cobbling together an amateurish website that a professional has already completed with much higher quality and is ready to sell for much less than the price of a single day of the business owner's time. So my advice is learn enough to know what is being pitched, manage those doing the work and judge final product quality, but leave the details to the professionals.

    9. Re:But why? by HBoar · · Score: 1

      the world you come from and the world of a small business owner are quite different.

      That's funny -- I could have sworn I owned a small business... Maybe I've finally lost it? Either that or you've just falsely assumed that engineers don't run businesses, which would be quite foolish considering the number of huge companies around that were started by engineers.

      Yes, time can be at a premium when you own a small business, but sometimes money can be too. Which is more scarce at any one time just depends on your circumstances. It makes sense to make good use of any spare time that comes about, and writing a few little programs that will save you time in the future is a great way to do this.

    10. Re:But why? by LodCrappo · · Score: 1

      I'm a mechanical engineer

      I am supposed to guess that you are actually a small business owner... how exactly? you stated specifically that you are a mechanical engineer and made no mention of any other roles. my bad?

      in any case, your comments are demonstrating a lack of perspective. a vast majority of small business owners are *not* engineers, and a vast majority of engineers are *not* small business owners.

      if you come from a technical background and have prior experience with programming, then of course it can make sense for you to use those existing skills in your small business. this is not the case for most business owners, and it does not apply to the OP (unless he also just expects us to know that as a small business owner, he's probably an engineer).

      for the overwhelming majority of folks who have programming experience and a non technical background (the OP describes himself as "non-techie"), it makes absolutely no sense to spend time their valuable time learning to program a computer.

      --
      -Lod
  38. How should beginners learn code? VIEW SOURCE by HockeyGuy · · Score: 1

    I had to teach people how to make websites for about 5 years and the one thing I always suggested was to view the source on a webpage.
    just find a word on the webpage near the thing you want to examine and view source then search for that word... but today you can install a plugin in FireFox like firebug and see more details.

    As for php its the same deal .. find a code sample site and take a look..

    That will get you interested especially if you like puzzles but then you need to take a weekend and browse a how to code php in 24hrs book just so you can understand things a little better...

    After that when you see a function just google it and you are likely to get an explanation....

    And if you want to see how the pros do it find an open source project that has a few years under it's belt and really take a look at how code is structured.

  39. self-promotion by Anonymous Coward · · Score: 0

    I wrote a blog post about this! (for a previous employer)

    Here, catch: http://www.webitects.com/blog/posts/14

  40. Not going to work by Anonymous Coward · · Score: 0

    Simply put, while programming is not horribly difficult, doing it well enough for larger works still is a specialist task, and well, the actual works are more often than not taking hours and hours of full-time work plus overtime to get done.

    Ergo, I think it mentally at least takes you to consider yourself a "hobbyist" and to have an actual, quite pressing purpose why you're doing it. It does take some dogged persistence to get anywhere, sort of like when you learn a foreign language - at least for the first programming language.

    That being said, a six year old kid can learn a real lot about software development if its interested. You can, too, if you care enough. But, I would not even try to specifically pick one of the "easy" languages. Pick the a popular one, you will have plenty of reading material and plenty of people to ask for help if you do that...

    1. Re:Not going to work by Anonymous Coward · · Score: 0

      That was meant to be "easy is not going to work"..

  41. Assembly by Anonymous Coward · · Score: 0

    Assembly, no question about it.

    Just run program called "debug" in windows, and off you go.

  42. Number crunching you say? Learn excel then vba by Sark666 · · Score: 1

    Excel almost feels like writing a mini program in one cell. One cell can have several if conditions and check multiple conditions and return a result.

    This will teach them logic and how to assess data and get out of it what they want.

    Then as they get more comfortable and then realize they are doing the same stuff in excel over and over, they can branch out into vba.

    And for learning it, they can record macros and see how functional (albeit bloated) code works and modify it to their liking. Tell me another environment that will write functional code for you! Then once they have that foundation they can learn how to communicate with other apps like access. From there, learn sql and expand your vba in that area.

    Then they can learn vb.net or full blown sql with other languages to write a web frontend.

    Yes it's microsoft and they're evil, but its a development environment that most businesses aren't even aware that they have.

    I continually wow workers with what I do in excel. The amount of time people waste doing reports and inputting data that could be automated or setup in a database.

    And yes, access sucks in many ways, but this is still a great path to learn and it will definitely provide a benefit in many businesses.

  43. Simple, learn Javascript by SexyKellyOsbourne · · Score: 1

    Simple, use javascript.

    It requires very little in terms of setup -- all you have to do is get a good text editor, like Notepad2, and write a .html file. Feedback to how your code works is as instant as hitting the F5 key in a browser.

    There's a lot to with getting started with programming that has to do with barriers to entry. Having to set up a development environment, deal with compiler errors and such, and not getting instant and familiar feedback is quite a barrier.

    If you know HTML and CSS, you should have a lot of fun with it. Grab jQuery, too -- it's easy to do amazing things very simply with it, and you'll learn a lot about OOP along the way just using it.

    You'll be able to use it very nicely in the future. Once you want to do something else, however soon that is, move onto that with what you've learned.

  44. Learn Unix by znice · · Score: 5, Insightful

    I have found that far and away the most important thing that my Computer Science program at University has required of me is that I learn Unix. Both of the scripting languages that you mention (PHP and Python) are, in a sense, descended Bash/Shell, and you will find that most of what you will be doing with them is automating procedures that could otherwise (though less practically) be accomplished via command-line utilities like cat, sed, grep, wget/cUrl, etc. The internet is essentially built up around Unix paradigms (those "/"s in URLs: the Unix directory separator, and full URL paths are generally representative of the contents of an actual subdirectory -- the web root -- on the server. I'm sure I'm telling most slashdotters something that they have known since their early teens, but the question is being asked by a beginner), so knowing how to work a Unix (or Posix) OS like any one of the major Linux distributions will be invaluable for you and, I would say, should be your starting point.

    1. Re:Learn Unix by Izhido · · Score: 1

      Aaaaaaaaaaaaaaa... a period as a sentence separator... *in between parentheses*... AAAAAaaaaaaaaaaaaaa!!

      (Dear Slashdot comment filter: Yelling *was* my intention with those caps... mmh?)

    2. Re:Learn Unix by Anonymous Coward · · Score: 0

      and 90% of #! runs on x86 assembly

    3. Re:Learn Unix by PJ6 · · Score: 2, Insightful

      For who the author is and what he's asking, I would say that suggesting that he learn UNIX is obviously ridiculous (and I come from the same background, did the UNIX / LISP thing in college myself) and certainly not insightful.

  45. Re:Why should a non-techie learn programming? by mysidia · · Score: 1

    Because they can?

  46. Good Lord, No. by dcollins · · Score: 2, Interesting

    "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."

    If you are running a small business, marketing, and supporting a family -- then at this point you don't remotely have the time to learn programming from the ground up. (All of HTML, CSS, SQL/MySQL, PHP/Python on a business-critical project?)

    Learning programming to that extent takes several years of alone time.

    --
    We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    1. Re:Good Lord, No. by gregrah · · Score: 2, Insightful

      We've got a vice president in my company who somewhere along the line learned to put together basic CRUD-style web UI's in PHP. A while back his department had a special requirement for a bare-bones tracking system - and since our overbooked engineering department was not able to provide him anything in the timeframe he wanted, he hacked something together himself with MySQL and PHP to get the job done.

      More recently, when a partner asks for a special report or view into our data that isn't supported in our website, he'll throw together a quick page to query our production database and display the results in a tabular format, and share that with the partner. He's got his own webapp running somewhere on our network with its own authentication and access control scheme which is completely separate from our main site and the control of our engineering and IT departments (I actually have no idea how he managed to get that hosted and accessible from outside our vpn to begin with).

      As one of the slow-moving engineers that his web app was created to circumvent, I won't even go into all of the concerns that I have with this setup. What I will say is that - all things considered - his apps actually aren't too shabby and the people who use them LOVE them for the utility they provide. And while this guy is really someone who I would consider a special case, I've also noticed a broader trend in my company on the "business" side: people who can write a SQL query and crunch some numbers tend to get promoted faster. As for this specific VP - he absolutely destroys his budgeted numbers year after year and I can't even imagine how large his bonuses must be.

      To the original poster I would say "yes, learn some 'programming' skills". As for how to do that, or what specific skills he should learn, that really depends a lot on the work you are doing. Every technical skill that I've ever really learned has been because I had some specific need for that skill. I've never had to ask what or how to learn something because almost always the answer was standing right there in front of me (usually the "what" in the form of a challenging problem and the "how" in the form of a good book or google).

      With that being said, here is the best advice I can give: the next time you need to ask a professional "techie" for help, ask yourself (or the techie) what exactly it is that the techie is doing. (Note: if the question turns out to be "build and entire web application", you probably need to think smaller scope). Then, figure out how to do that thing for yourself. Do that enough times and you, too, will have earned the title of "techie".

    2. Re:Good Lord, No. by Anonymous Coward · · Score: 0

      Having started from zero knowledge, I found the "best" way was to start with a project--website-- use a wsiwyg program like NVU and then start from there--its encouraging 'cos you have an end product straight away. This has lead to learning the basics of Dreamweaver,then server side includes, then into php, then Javascript, Wordpress.
      I'm not saying that I have an expertise in all these but I do know the basics, and can then build on that. Above all you need persistence and a good dose of "this thing wont beat me"

    3. Re:Good Lord, No. by HBoar · · Score: 1

      I'm sure he can decide for himself whether he has spare time. Learning programming from the ground up may take too long to provide benefits, but what about starting with some VB? However much you hate it, using Excel and VBA can allow you to create many useful little programs right from the word go.

  47. Re:Why should a non-techie learn programming? by mysidia · · Score: 1

    Why should a non-medic learn CPR?

  48. It's like.... by Ancient_Hacker · · Score: 1

    It's like asking: How can I learn to be a ( surgeon, lawyer ) in a few days? After all, I can carve a turkey already and I've watched every season of "LA Law".

    Programming may seem easy-- after all, it's just typing, right?

    Well, surprise, surprise, it's a lot harder than those "[Language X] For Dummies" books let on.

    In fact some of us went to school for 4 years and just learned the basics. Maybe after another ten years you get good at it. No shortcuts.

    1. Re:It's like.... by grahamwest · · Score: 1

      That's the fundamental misconception I always try to address with non-programmers. Programming APPEARS to be about typing. It is REALLY about thinking.

      --
      Graham
    2. Re:It's like.... by Belial6 · · Score: 1

      I disagree. Programming IS easy. At least way easier than most non-programmers think it is. What is hard is having the temperament to actually do it, and even more so, the temperament to actually learn it. It is like plumbing. Pretty much anyone can learn out to do it. It just isn't that hard. What most people lack is the desire to learn it, and the willingness to climb into the crawl space of some house that only MAY have the clearance to get back out, make their way through the mud that is mud because a toilet has been leaking under the house for the last two years, and repair a sewage line.

      Just like plumbing, once you know how to program, years of experience will frequently result in better choices of tools, fast work with less errors, and various tricks to get things done better than just bulldozing through.

      Sure, there are people that simply don't have the mind to program, but there are people that don't have the mind to do plumbing either. Heck, there are plenty of people that don't have the mind to wait tables.

    3. Re:It's like.... by sulphurlad · · Score: 1

      Damn another plumbing reference....
      I am a Plumber, master at that, state certified and all. I'm also an MCSE 2000. Plumbing and Computers are very similar.... at least at a high level, not talking glue pipe together or building a computer.
      Logic and critical thinking are key. I can go into just about any structure, and surmise the basic layout and routing of the structures plumbing/mechanical system. There are only so many ways to skin a cat.
      Doing basic plumbing is alot like networking, writing a script or a web page. If you know what to out come is supposed to be, you can muddle thought it.
      Designing a Mechanical System, Water Distribution, Sanitary Piping, HVAC/R, Process Heat Recovery and Redistribution, and make it work correctly and with little maintenance is a whole other issue.
      Real Programing, Like Mechanical Engineering, now that is the realm of the Professional. If you want to knock out a simple script to move data from one program to another, change a faucet or toilet, that's fine, Other than that, find a programmer or plumber and make a friend, share a beer, and have him do it. At least you know that it's done right.
      Like my daddy said right before he killed my moma, you can hire talent, and fire 'em when the jobs dun, or you buy a friend a Papst Blue Ribbon and have them do it for you, plus talk about the best way to beat your wife and kids. Kidding.....

  49. excel macros for the rookies by tbischel · · Score: 1

    I'd say start with something practical that builds on knowledge you may already have. For instance, many people use Excel in their day to day lives... I'd start with the vbscript macros to do simple tasks to make your data more useful.

  50. I may sound cynical.... by brasselv · · Score: 2, Insightful

    ....but the "non-technical" person that starts with this type of mindset, I suspect, won't get too far. Learning anything complex and new requires enduring efforts and a strong will, plus a certain degree of intellectual curiosity, and a sense of purpose.

    "Let's start learning something about X", especially if X is as broad as "technology" is too generic an intention, to fit what above.

    It reminds me of man who goes at the library and says: "I have decided to get an education. Which books will get me educated?"

    --
    "Whenever people agree with me I always feel I must be wrong." (Oscar Wilde)
    1. Re:I may sound cynical.... by svanheulen · · Score: 1

      More importantly, if they're non-technical, they probably don't even know how their computer works so how do they expect to learn how to program? There are many more thing you should know well before you start programming.

  51. Don't do it by strangeattraction · · Score: 1

    But if you must try, start with something simple and solve a particular problem. Don't listen to people who espouse one language versus another. They are idiots and will never be helpful. You might try http://www.processing.org./ It is a well defined environment with a simple editor and tools and will let you do some really fun and interesting things. A lot of artist use it for various projects.

  52. How do you start? Don't. by Anonymous Coward · · Score: 0

    If you don't pretend that you know how to code, then I won't pretend that I know how to run a business. Deal?

  53. HTML, Notepad by Bluesman · · Score: 2, Insightful

    Odds are you'll never have enough time to learn programming at the depth that someone who is very good at it knows it.

    Start small. Learn how to write a static web page using nothing but Notepad in Windows. Then, when you've mastered that, try using CSS to change the way it looks.

    At this point, you can get into Javascript, which is a fantastic language for learning. Try to make something on the web page change when you mouse over it. Experiment with changing text fields in Javascript.

    Then, write a simple "desktop" calculator as a web page.

    This will likely take you a few months or weeks if you spend a lot of time at it. Remember, use Notepad only. Don't worry about making it work in anything but Internet Explorer (or your browser of choice) because that will make you insane.

    When you can write Tetris, then you're ready to work with databases and servers.

    Don't use MySQL, it's an abomination. If you have Microsoft Access, start with that. Make a project in that that real people will use. If maintaining it becomes difficult, it's because you don't know enough database theory. Figure out on your own why you want data to be fully normalized and only flattened with many saved SELECT queries. Try to figure out how to write the queries in SQL using the (excellent) query editor. Write UNION queries.

    Now you're ready for a server and web site.

    --
    If moderation could change anything, it would be illegal.
    1. Re:HTML, Notepad by Bluesman · · Score: 1

      Shoot, sorry to reply to myself, but the alternative to MySQL is PostgreSQL, and it's much, much better. Trust me on that. Nobody gets it at first, but anyone who spends any significant amount of time using RDBM's properly will end up wondering why MySQL even exists.

      --
      If moderation could change anything, it would be illegal.
    2. Re:HTML, Notepad by Anonymous Coward · · Score: 0

      Your comment seemed pretty reasonable until i read the following statement.

      Don't use MySQL, it's an abomination. If you have Microsoft Access start with that.

      Im not going to get into Mysql vs Postgres vs SQLServer , but to say that MySQL is an abomination and then reccommend Access as an alternative, is just insane.

      N.

    3. Re:HTML, Notepad by Stormie · · Score: 1

      If you have Microsoft Access, start with that.

      No, don't. If you want to use a free Microsoft database, use a proper free Microsoft database: SQL Server Express Edition, or check out the even simpler file-based SQL Server Compact.

  54. Don't by Anonymous Coward · · Score: 1, Interesting

    I advise non-techies to not learn programming. Unlike most slashdotters, I don't see programming as a useful tool that everyone should learn, I think of it more as being a doctor than a mechanic. Sure, it'd be nice if everyone could program well, but the bottom line is most people don't have the knack for programming that techies do. As such, if they learn to program, they'll do it poorly (likely) as they lack the passion techies have.

    How many times have you guys had to clean up code after a beginner, idiot, or non-techie? Be honest.

    Food for thought,

    (first time poster, long time reader)

    1. Re:Don't by sycodon · · Score: 3, Informative

      Yes, that is from a for real job requirement.

      --
      When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    2. Re:Don't by kikito · · Score: 3, Insightful

      I can't help but notice that if you take the Microsoft-related technologies from the requirement list it starts to look adequate.

    3. Re:Don't by johnlcallaway · · Score: 3, Interesting

      I've been programming for 30 years, and have never had those problems. I keep up to speed on new technology, am never afraid to pitch in even when I don't know something, and have always made sure my various bosses know that I will do whatever it takes to get the job done. I get jobs based on contacts with friends and don't send resumes to HR, I get them to the manager. I'm smart and curious, and make sure that I present those skills because anybody that is a decent manager knows that they want someone who is smart more than someone who is certified. And anyone that is any good knows they don't want to work for a manager that hires based on certifications.

      So if someone is having the problems noted above, maybe they need a different attitude. Whining never solved anything. And when I hire people, I don't want excuses, I want someone who will dig it and get the job done.

      Any decent programmer can learn a new language after they have been programing for years, it's just not that difficult. Unless someone isn't that good to begin with. Because no matter how much they tell you, basic programming really hasn't changed in 30 years. Oh sure, we use IDEs instead of card punches, and they'll talk about object oriented programming and the new paradigm, but it's really not much different than the old paradigm when you look under the covers. Computers still do things the same way they always did. Unless someone changed how binary works.

      If someone doesn't want to be a programmer .. don't start. Unless you are just curious. There is nothing worse than someone with no programming experience writing code. Not because they can't write code. But because they don't know enough about how NOT to write code and how to identify and correct syntax errors and how to debug and test. And will need to spend the next 10 years making the same stupid mistakes we have all made, but without the oversight of someone who knows how NOT to write code that will laugh and gently explain to them why myString+=anotherString sometimes is OK, but sometimes isn't. Why even though it works, sometimes there is a better way to append two strings and other things that aren't in the manual.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    4. Re:Don't by Bemopolis · · Score: 1

      What a ridiculous jaded viewpoint from someone whose lifeforce has cleraly been crushed by his career history.

      BFF!

      --
      "I guess the moral of the story is, don't paint your airship with rocket fuel." -- Addison Bain
    5. Re:Don't by tomhudson · · Score: 1

      And don't forget that after all that, they only want to pay you a starter salary to see if you work out ...

      Short answer - you're a non-techie. Otherwise, you would have already been poking around doing things.

    6. Re:Don't by Anonymous Coward · · Score: 1, Insightful

      And as you can see from some of the responses, programming can take a toll on your sense of humor.

    7. Re:Don't by lonecrow · · Score: 1

      I have about 25 years in as well but I have had a totally different experience. First of all I started in data modeling with dBaseII and probably 80% of what I learned then has not changed (despite attempts by the noSQL crew). For me it has been pretty trivial to absorb new languages and libraries as they come along. From dBase/clipper, to DOA to ADOBD for example (dBase/access/sql). On the web the differences between PHP and ASP are fairly minor and if you use Javascript that's very close to a whole slew of other languages.

      As for those job postings that list a ridiculous variety of "requirements*, I just look at what the project goal is. If I think I can deliver the goal using my tool set, then I apply for the job and show them why my way is the preferred way. Sure that doesn't work in some situations, but the more scatter shot the requirements the more likely that they don't know what the hell they are talking about.

      But I will tell you what. If you can already speak normal human and have some business sense, then learning a bit of tech *may* help you to be able to translate client speak for an actual full time techie. IMHO there is a strong need for more project managers to manage freelance code monkey's. I had a client that ended up bring me other projects and acting as the project manager. After a few years we developed the ideal situation. He handled all the boring crap with the client. Even after taking his cut I made more money over all because he knew how to figure out what the project was worth to the client and billed up to that.

      But my overall advice is don't bother unless you love this stuff, and if you do, dive in and forget about trying to dabble because you'll end up producing crap that will only impress your wife. (unless she is a geek ;)

    8. Re:Don't by gundersd · · Score: 1

      It sounds like the job advertised just isn't for you In fact, it seems to me, with all the bitterness in your post, that you're probably not particularly well suited to software development as a profession.

      If you want to really succeed as a developer, the best piece of advice I can give you is that you had better be prepared to be continuously learning. Get yourself a subscription to Safari Books, join the ACM or the IEEE, read blogs, download and listen to/watch pod-casts, subscribe to interesting people's twitter accounts, immerse yourself in what's happening in the free software world, try to learn a new language every year if you can.

      If you're not prepared to keep up with what's going on, the sad fact is that you're probably not making good decisions for the company that you're working for. Sure you might be able to write basic run-of-the-mill widget-shifting code, but chances are you're not someone who's ever going to be writing really good, clean, maintainable, useful code. Job ads like the one above are trying to find people who are genuinely interested in keeping themselves up-to-date with technology, and who have a real passion for the field.

      I'm sorry if I've offended you, but I've met a lot of people in the industry who got into it for the wrong reasons and subsequently struggle, and I'm afraid it sounds like you're one of them.

    9. Re:Don't by Nursie · · Score: 3, Insightful

      I've only been in the programming game for a decade but I don't suffer from that. Why?

      I never did program in anything fashionable or new. The language I use for 99% of the serious stuff is C, there are always loads of jobs in it for someone with a few years experience, and it was designed in the late 60s/early 70s so it seems to me it's unlikely to just up and die any time soon.

      I'm not trying to get into a 'which language is best' flamewar here, but from a career perspective I've done very nicely out of it. I do learn bits and pieces of other stuff as needed, but having C as a base ensures I'm never out of date (or perhaps I'm always out of date :)

    10. Re:Don't by 1s44c · · Score: 2, Interesting

      So, the best thing you can do is stay out of it and pay us lunatics that are dumb enough to go through all this crap.

      Keeping up with the latest trendy languages is a path to burn-out. Find another path.

      This flitting from thing to thing isn't right. It's like a heart surgeon changing to a ear, nose, and throat specialist, a radiographer, then a dentist, within 10 years.

    11. Re:Don't by 1s44c · · Score: 1

      What a ridiculous jaded viewpoint from someone whose lifeforce has cleraly been crushed by his career history.

      It may be jaded but not ridiculously so. IT has always been about the 'next big thing' and when that turns out to be all hype and hidden problems there is a new 'big thing'. Plus IT is flooded with career blaggers who will say anything to get paid but have no idea what they are doing.

      Too few people are thinking about stability, security, and minimum disruption.

    12. Re:Don't by 1s44c · · Score: 1

      subscribe to interesting people's twitter accounts

      Because knowing what pizza Stallman ate last night will make you a better programmer.

      Maybe I'm looking in the wrong place but I've never seen anything worth reading on twitter.

    13. Re:Don't by nobodie · · Score: 1

      15-20 years ago (fuzzy memories, i'm old) a good friend who was already both a rocket scientist AND a nuclear engineer for a big company realized that what he was doing was dead and he had to move on, again. So he started to learn C and switched over to the "new" division where the big company was writing programs about god knows what.

      So the parent here is correct, but don't go off whining in your beer, my buddy did it, twice last I know, I "retired" when I was 40 and went back to uni to build a completely different skill set. That is just the way the world works. Frankly, I'm so glad I'm not stuck in the dead end my old "fast-paced, upwardly mobile" job is today.

      --
      Subversion of spatial scale luxury decoration ideas.
    14. Re:Don't by Anonymous Coward · · Score: 0

      And then, you have assholes like this clown to contend with. They are the ones that go up and down the halls poking their nose into your business, giving unwanted advice and who sign up to be "Floor Security Adviser" which means they get to carry a flashlight and a beeper.

      In meetings they will pipe up and ask way too many questions about things that have been discussed to death, causing everyone to roll their eyes because they want to get the hell out.

      They wear three piece suits decades after they went out of fashion, pocket protector for sure, stare at woman's bosoms when they meet and always, always, always bring a sack lunch with an apple (which they will spend 15 minutes on scrapping off the wax), a baloney sandwich, and a V8.

      They also have a particular trait: they will either never stop talking to you, even after the conversation is finished, or will have a tough time completing a sentence. Both of which are annoying.

      They are Les Nessman and Dwight Kurt Schrute III combined.

    15. Re:Don't by crow_t_robot · · Score: 2, Informative

      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/
      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.

    16. Re:Don't by Zanadou · · Score: 1

      "Applicant must be able to work independently as member of a successful, close-knit team."

      That's from an actual job application notice for a public-service job I read recently.

    17. Re:Don't by Hognoxious · · Score: 1

      I keep up to speed on new technology,

      There's not time to keep up with everything.

      am never afraid to pitch in even when I don't know something,

      I've had a few frustrating (but lucrative) jobs clearing up after people like that

      and have always made sure my various bosses know that I will do whatever it takes to get the job done.

      To show off your ass-kissing skills^H^H shining personality you need to already be in the company. To be there you have to get past the HR droids who understand one thing: ticking lists.

      GP's tone may be facetious, but I have actually seen ads requiring experience greater than the age of the product.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  55. name your pleasure by epine · · Score: 2

    In watercraft, there are two sides to the tree: watercraft where buoyancy is independent of orientation (e.g. Zodiac) and watercraft where orientation is everything. In the second group, you have canoes/kayaks with great initial stability and terrible final stability, and you also have the converse. For propulsion, you have gas eating outboards, propulsion by environmental agents, and self propulsion. And you have a choice between artificial materials and natural materials.

    C is instructive if you stay close to the shoreline. LISP is a kayak. You can roll over and come up the other side. Some people like that. Python is a reasonably nimble rowboat with room for a picnic cooler. PHP is a powerboat with an onboard mini-bar in a deadhead lagoon. Java is a twin Zodiac catamaran. Never sinks in the water, but watch out for the trees. C++ is a canoe with two gun decks and side mounted chainsaws (sorry, Bjarne). Name your pleasure.

    I'm partial to the wood-canvas Chestnut Prospector, paddling solo in a sheltered bay. The one thing an amateur absolutely needs to avoid is going bow up against a cross-wind.

    1. Re:name your pleasure by russotto · · Score: 1

      C++ is a canoe with two gun decks and side mounted chainsaws (sorry, Bjarne).

      Unfortunately, the guns and chainsaws all face inward.

    2. Re:name your pleasure by gregrah · · Score: 2, Funny

      I've seen plenty of car analogies on slashdot. This is the first watercraft analogy I've ever seen. I applaud your willingness to experiment with new forms of analogy.

      That being said - I have to say that if you want readers to have any idea what you're trying to say, you would be better off sticking to cars.

  56. The language does not matter that much. by Thanatiel · · Score: 1

    A language is easy to learn: you only need to know how to loop, how to branch, how to define/make/call a function, an object and its methods and you are basically set.
    What's less easy is the API: what are the tools, objects, functions, collections, IOs, whatever readily available to you with that language and does it cover what you are interested in. The difficulty here is that it's usually big, so at first it takes a while to find where is what you need.

    Anyway that's not the issue here. First you have to think right. For this you should learn algorithmic (ie: http://en.wikipedia.org/wiki/Algorithmic ).
    Then only you can pick a language. Take one with garbage collection: Visual Basic, Java, C# and avoid scripting languages.
    When you will feel comfortable with one language the other ones should only require a minor effort.

    --
    Irrelevant news and morons using moderation to mod down what they disagree on. 2018 resolution: so long.
    1. Re:The language does not matter that much. by Anonymous Coward · · Score: 0

      Take one with garbage collection: Visual Basic, Java, C# and avoid scripting languages..

      Aren't those scripting languages ;)

  57. www.w3schools.com by Anonymous Coward · · Score: 0

    A great place to start learning HTML, CSS, SQL, PHP, etc is www.w3schools.com It is where I point my coworkers when they need to dip their toes into new languages.

  58. just set an appropriate expectation for yourself by PJ6 · · Score: 1

    Unless you decide to do it full time, anything that you develop that actually sees production will eventually need to be rewritten by someone else. If you're OK with that, go for it.

    If you're serious about learning how to program, start with a strongly-typed language. Microsoft's Visual Studio has a wonderful (and possibly the best) integrated development environment. I recommend VB.Net, which you can get for free.

  59. It's easy by Dunbal · · Score: 1

    Visit your local Barnes and Noble. Find books on the programming language of your choice. Buy them. And instead of leaving them lying around - READ them.

    Get your hands on a compiler for the language of your choice, try out the examples in those books (DO NOT use the included CD's, that's the lazy man's way). Pay attention to the code you are typing. Compile, run, try to figure out what's happening. Look for tutorials on the internet, and do the same.

    Finally, assign yourself SIMPLE projects and try to write programs that meet your goals.

    This is how we did it back in the old days, when all you had was a couple pages on assembly language distributed in your MS DOS manual. Modern IDE's let you see much more clearly what's going on than a code dump in debug.exe.

    --
    Seven puppies were harmed during the making of this post.
    1. Re:It's easy by internettoughguy · · Score: 1

      I "learned" C this way, I just got a book out of the library, read each chapter, and implemented something from each. It was easy, and I understood everything, and for the limited domain (writing off-line cg shaders) I was interested in, pretty usefull. In saying that, someone could show me a piece of code from any sufficiently complex project, and even though I understand the syntax, I couldn't tell you much about what I was looking at.

  60. mod up! by Black+Parrot · · Score: 2, Interesting

    They shouldn't .... small business owners dont feel pressured to learn plumbing - they hire a plumber.

    Best response posted so far.

    --
    Sheesh, evil *and* a jerk. -- Jade
    1. Re:mod up! by Anonymous Coward · · Score: 0

      When you know to do plumbing you'll know if the plumber you hired is any good or if this golden fitting is really necessary.

    2. Re:mod up! by sulphurlad · · Score: 1

      as a Master Plumber and MCSE, I resemble that remark.... it's all shit in - shit out

  61. Re:They shouldn't +1 by Anonymous Coward · · Score: 0

    Agreed. There are already enough non-techies that are trying to write code. Then real programmers waste time fixing their code.
    If you write it yourself, it will probably cost you more later on to have the code fixed then to get it done professionally the first time.

  62. gotta have the bug by Anonymous Coward · · Score: 0

    Web programming with HTML/CSS and PHP/MySQL is probably the easiest route, but here's the thing: if you're not "one of us", it won't stick. Programmers usually learn through obsession. If I didn't love learning about computers and how they work, I wouldn't be able to do it. I've seen a lot of people say "I'm going to learn to Program", but in the end they just didn't have that bug that makes us spend hours and hours learning it - and enjoying it.

  63. Seems simple to me... by frank_adrian314159 · · Score: 1

    I've heard that there are these places called community colleges that supposedly have these "class" things. If you don't want that, you could probably read a book or a website or something.

    Worst. Ask Slashdot. Ever.

    --
    That is all.
    1. Re:Seems simple to me... by cosm · · Score: 1

      Worst. Ask Slashdot. Ever.

      You are either trolling, or have short memory, for I am fairly positive that How To Get a Game-Obsessed Teenager Into Coding? falls much closer towards your categorization. At least this question focuses on self-betterment, whereas the previous question is about casually pointing somebody towards an orange, although they currently enjoy apples.

      --
      'We are trying to prove ourselves wrong as quickly as possible, because only in that way can we find progress.' RPF
  64. No! by Anonymous Coward · · Score: 0

    Don't ever teach marketing people programming. Feeling fulfilled after completing their first "hello world" exercise, they'll think "That was easy" and underestimate the hours needed to complete yet another project

  65. why should a non-techie learn to program??? DONT.. by Anonymous Coward · · Score: 0

    Yeah...well I'm a programmer and it sure would be handy if I knew how to do brain surgery...it would really help to "feed my family".

    Short of going to college, I would say you are in trouble. Just pay someone to make your website, and spend your time making yourself a better buisnessman.

  66. Don't box the guy in! by mcrbids · · Score: 5, Insightful

    Writing "I want to be a programmer" is like saying "I want to be a doctor!". There are a million different sub-fields, from orthopedics (EG: fixing borken bones) to orthodontics (fixing teeth) and there's a million details to know for each field.

    Programming is a big, big field and covers everything from hacking firmware in assembler to writing SQL queries to using macros in Excel. Laugh all you want to, but the lowly Excel macro quite literally runs Billion-dollar enterprises, and is legitimately a programming art, just as much as assembler or kernel coders in that it gets the job that's needed, done.

    Start with finding out what you are trying to accomplish, and then work from there! My goal was to build and sell information management tools, and for me, PHP and SQL seemed like good tools for the job. They haven't disappointed me, for my focus, but then, I'm not trying to build a 3D FPS, either!

    Then, get the right tool for the job, and roll with it.

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
    1. Re:Don't box the guy in! by Shadow+Wrought · · Score: 4, Insightful

      Start with finding out what you are trying to accomplish, and then work from there!

      So very true, regardless of what you're trying to learn. If it doesn't relate back to something you're already interested in you're not going to be able stick with it over the long haul.

      --
      If brevity is the soul of wit, then how does one explain Twitter?
    2. Re:Don't box the guy in! by TheVelvetFlamebait · · Score: 2, Funny

      Don't box the guy in... Writing "I want to be a programmer" is like saying "I want to be a doctor!". There are a million different sub-fields, from orthopedics (EG: fixing borken bones) to orthodontics (fixing teeth) and there's a million details to know for each field.

      So what you're saying is, don't box the guy in, even though it's really, really large box that he'll never see the sides of?

      --
      You know, there is a difference between trolling and pointing out the flaws in your reasoning. Just saying.
  67. One tip, by maiki · · Score: 1

    For starters, refrain from calling us "techies" if you want less rolling of the eyes. Similarly, don't say "I'm computer illiterate!" and then laugh as though it were a clever joke. That being said, you're forgiven because of "studs and studdettes". That made me smile :) Though I would've also liked "studs and mares".

  68. Re:Why should a non-techie learn programming? by PopeRatzo · · Score: 1

    That question needs answering first.

    OK, I'll provide some specifics.

    Let's say an artist wants to learn programming, let''s say because in certain applications, like the Cycling '74 products, or if you wanted to develop custom MIDI controllers or even with some of the Native Instruments applications, a basic grasp of scripting and programming would really allow you to use some of the deep power of those applications.

    Or if you wanted to do some game programming in Flash (don't ask why) or animation where there are programming aspects to the projects.

    Is the best approach just to dig in and try to figure out the specific languages used in those applications or is there a good way to learn the techniques required that would apply across the board?

    I'm ashamed to say that there have been times when I've gone in a particular direction in one of those programs and suddenly I was faced with something that looked a lot like programming in Basic or C or some object oriented language and I gave up on what might have been a fruitful direction because I lacked even a basic understanding of how such things work. I had tried to pick up a book or two and see what I could learn "in 28 days" or whatever and was discouraged because it seemed like all the books wanted to teach me how to write accounting programs or databases.

    You can see that I don't even know enough about programming to explain my shortcomings, yet I would benefit in my particular area of interest from learning a little something about it.

    --
    You are welcome on my lawn.
  69. The next obvious question by Anonymous Coward · · Score: 0

    How should a techie learn social skills ?

  70. adobe flash by Cyko_01 · · Score: 1

    I'll probably get flamed into oblivion for this, but...learn flash and leave it at that. If the company wants a real website they can hire a professional.

  71. Re:Why should a non-techie learn programming? by sjames · · Score: 2, Insightful

    So when your car stops in the middle of a desolate no-phone zone you have some prayer of at least getting it to limp to the next town? So when the mechanic tells you your car needs a new 'connuter valve' and it will cost $500, you know to take your business elsewhere? Because the guys at the quickee-loob are always forgetting to tighten the oil filter and put the drain plug back in? So you know that when the check engine light comes on it means eventually but the oil light means right now?

    I'm not a doctor, but I know enough to know when I'd better see one and when I should just wait it out.

  72. Re:Why should a non-techie learn programming? by Evil+Shabazz · · Score: 1

    The guy is more saying, "At the very least, I have a decent car vocabulary. I want to start building a car in my garage. How should I learn how to build a car?"

    --
    Down with the career politician! SUPPORT TERM LIMITS
  73. R U Kidding ME? by grikdog · · Score: 1

    Sorry, non-techies don't get it and never will. If you want to spend money on lessons, forget that too. The only way to be a techie is to pass the proficiency test: Do you love this stuff more than life, wife, family and normal hours? Do you do it because the bug has bit you, and you can't help yourself? More specifically, if you're a M$ nerd, have you memorized the keyboard, and your hands know all the shortcuts -- and I do mean ALL the shortcuts -- better than your brain does? Was your first Linux Slackware? If you're on Mac OS X, was the first thing you did was to install X Windows? Is every user manual you ever acquired still lying in the bottom of the box it came in, pristine and untouched? Nobody sane does this stuff. If you're insane, you might be a techie.

    --
    ``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
    1. Re:R U Kidding ME? by sulphurlad · · Score: 1

      hehehehe, or trade a wife in for a computer, or teach you dog to use a KVM ( I said hit F2 twice, Good boy, here's a biscuit ), or access you entire porn collection from a boat while fishing to impress you friends ......

      Sounds like a bad Jeff Foxworthy skit.

      You Might be a Techie ........

  74. First concepts visually, then boring text by gmuslera · · Score: 1

    Scratch or AppInventor for Android could be good starting steps. From there, will be easier to go then to more "textual" programming languages.

  75. That's an ambitious goal. by bit9 · · Score: 1

    Most programmers (at least the ones I know, including myself) didn't start with such lofty goals. We also started very young - I started in middle school writing tiny little BASIC programs on a TRS-80. It took me several years, and lots of tiny, simple programs, before I even realized I had any sort of actual talent for it, much less the desire to do it for a living. Then I went to college and spent several more years learning programming at a purely academic level - again, lots of relatively small, simple programs that did not solve any difficult real-world problems.

    Truth be told, it takes at least a year or two just to learn the fundamentals of computer science - which you should do, if you ever want to be any good at programming.

    I'm not saying that it isn't worth your time to merely dabble in programming, and that you shouldn't do it unless you're willing to go at it hard core. What I am saying is that you should have realistic expectations, and lots of patience. Don't expect to pick up a copy of "Teach Yourself Web Programming in 7 Days" and expect to be cranking out professional looking (and more importantly, functioning) websites in a week or even a month or a year.

    There is a lot of accumulated knowledge and hard experience that goes into being a successful professional programmer.

    So my advice to you is to start with whatever kind of programming you have a real interest in. Be prepared to spend countless hours hacking away at your code before it even comes close to working the way you envisioned it. The more non-trivial the task, the more time you should expect to struggle with it. And remember that the learning process will be non-linear at first, because every answer will raise several more questions.

    Most importantly, don't give up! Learning a difficult technical subject like programming involves lots of tears, sweat, and frustration. You will get to a point where it's 2:30AM and you've been staring at your code for hours trying to figure out why it's getting a "Segmentation Fault" or some such thing. In fact, there will be many such points. You just have to be willing to push beyond those barriers, and not give up. Of course, having a programmer friend that you can ask (hopefully someone with lots of patience) for help goes a long way.

    My writing tends to be overly verbose and rambling, so let me just reiterate the main points:

    • Start with an area of programming you're truly interested in. Your interest in the topic will help you overcome all the many hurdles.
    • Be prepared to make agonizingly slow progress
    • Don't expect to be able to accomplish non-trivial tasks any time soon. Otherwise you'll just get frustrated and quit.
    • Be adventurous. Don't forget to try new things, and don't fall prey to the old saying "When all you have is a hammer, everything looks like a nail."
  76. Re:Why should a non-techie learn programming? by cbhacking · · Score: 1

    Yes and no. If you're a kid in high school who wants to make some money on the weekends, knowing how to write web pages isn't a bad approach. It probably won't pay enough to really live on, though, let alone support a family on. If you already have a marketable but not computer-based skill set (business, accounting, sales, psychology, chiropractics, education, etc.) then learning to program a little is not likely to help your bottom line at all, and learning to program well is going to take time away from using the skills you already have.

    Also, don't think that just because you learn how to cut some code you're going to be like your son-in-law who landed a $80K/year job right out of university; most programming jobs pay well but not usually that well, and there's no lack of well-qualified applicants for the good ones. If you want to be one of those, get yourself into a good university's computer science or engineering program, finish the degree, and polish up your interview skills; you might just get lucky. If that sounds too much like learning an entirely new career to you, congrats, you figured it out.

    Don't get me wrong, learning about computers (how to maintain them, how to stay secure, how to recognize when there's a problem, and ideally how to fix the most common issues) is almost essential in today's world, much like the same general class of skills are relevant to cars, houses, and financial accounts. If you want to go a bit further, learning to write Office macros and/or shell scripts (CMD or Powershell on Windows, or Bash) is actually a really handy productivity skill. It's not glamorous, it's (hopefully) not anything a customer will ever directly see, and it's not going to give you the programming skills to write the next Facebook. However, it is programming, and of the most immediately useful type: it can easily save you hundreds of hours a year of tedious tasks, and let you put that time to more productive use.

    --
    There's no place I could be, since I've found Serenity...
  77. MOD PARENT UP by Anonymous Coward · · Score: 0

    I went to college to be an English Teacher and now I work at IBM in technical support. I never took a programming course, but over the years I have program in different languages to solve the things I needed to do: DOS Batch of course, C shell Unix scripts for automating tasks in Linux, Perl scripts, Tcl/Tk for little Windows GUI apps, HTML and CSS for websites, and lately I have started learning TeX/LaTeX for a book I am writing. In each case, I learned the language because I created a project that benefited me and was interesting. I would probably start by installing an OS like Ubuntu on your home computer. This kind of OS is more friendly to the introductory programming languages. Once you learn to write one a little script that allows you to do something cool, you will instantly find yourself thinking of other projects, and then you will be on your way. Good luck!

  78. For Business/Marketing people? C# by Linux_ho · · Score: 1

    "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?"

    Every application will have tools that are more or less appropriate for the task at hand. Even just the two you listed -- throwing up a small web site and doing serious number crunching, are very different tasks, and there is no one tool that would be ideal for both (for some definitions of 'serious' number crunching).

    It sounds like you're focusing on people who have no desire to become techies down the road -- people who don't want to invest a lot of time in learning the nuances of different programming tools. The most widely applicable tool available right now is probably Java, but I wouldn't recommend it to people who aren't interested in software development for its own sake.

    Marketers and small business owners would be best served by farming out things like web site development -- good web development requires a very broad skill set that is rarely found in any one person anyway. If you want to learn some basic programming to automate repetitive administrative tasks like manipulating Excel spreadsheets on Windows systems, learn C# (...I feel so dirty). Visual Basic would be a good choice too.

    Personally, I'm a Perl guy. I LOVE Perl. I deal with lots of text files, often on non-Windows machines. Perl is easy to learn, it can run on lots of different operating systems, and it has an AMAZING collection of modules that let it do just about anything. But... I can't really recommend it to someone who's probably never going to need to interface with anything but Microsoft applications on Microsoft operating systems.

    --
    include $sig;
    1;
  79. Codingbat by icknay · · Score: 1

    For live practice problems check out http://codingbat.com/ There's book-learning of programming, but then you also really need practice, and that's what codingbat is about. Disclaimer: my site, but hey, it's free.

  80. Learn to think first. by meburke · · Score: 2, Informative

    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 . 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.

    --
    "The mind works quicker than you think!"
    1. Re:Learn to think first. by stanlyb · · Score: 0

      I have better ideas. They have to start reading the book: How to learn programming in 20 years. LOL. And just to make myself clear, i am not joking, there is really such a book.....

  81. Re:Why should a non-techie learn programming? by TapeCutter · · Score: 1

    Excellent advise. I've got a CS degree and have been in the industry for 20yrs, but writing/securing web sites is not my gig. Sure I could easily write my own web site, but considering the price of hiring a reputable firm to do it for me it's just not worth the effort/risk. My time would be much better spent testing said web site.

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  82. Short answer by stanlyb · · Score: 0

    There is NO WAY. Let me ask you, how should a programmer learn quantum mechanic? NO WAY. In fact, i am wrong, there is only one way: GO TO UNIVERSITY.

  83. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  84. Use good tools and learning will be easier by brokenin2 · · Score: 1

    When trying to learn HTML, don't use IE... Use firefox with the firebug plugin loaded.. it'll actually let you see what is going on/wrong and will let you experiment on the fly.

  85. Seconding that with an example by dbIII · · Score: 2, Interesting

    At my company we've got a fairly good graphic designer and somebody gave her some flash tools to play with to mock up a website. The result is a intro page that would take more than fifty seconds to load at the full speed of our link to the internet. It would cost far far more in time for the graphic designer to learn to be a web page designer than it would to get someone to do it for us.

  86. Call me a pessimist but... by Anonymous Coward · · Score: 0

    I have been a 'technology enthusiast' for the past 20+ years. I'm 31. I got my first computer at 11, wrote my first program in GW BASIC at 12. I learned enough x86 assembly to eek out a 'hello world' and a program that beeped. I was a master of batch files. Once I got a hold of Telegard BBS software source code in Turbo Pascal when I was 14 or so and hacked together my offshoot BBS software out of it. It compiled, it executed. Nothing fancy. Senior year in high school I started making web pages (in 1996 you did that with edit.com--not a domain name). I wrote a loan amortization program in QBasic for math credit. I've owned my own computer/network consulting business. Though no longer in the technology sector I'm still an avid hobbyist. I dabble in linux, made a hackintosh, I try every OS that comes my way. Console modding, and my new thing is Android...

    Point being I'm a very experienced (though not in great depth for programming), multidisciplined technophile.

    Knowing what I do know about programming (which while not that much on the grand scale is infinitely more than someone not so technologically inclined) I know it to be beyond the amount of dedication I have to devote to it, as much as I'd love to be a 'real programmer'.

    If these people have that amount of dedication for it they can achieve it, as well as anything...but there is _so much context_ missing for them.

    A noble idea for certain but I'm not so sure programming is an "everyday Joe" kind of task. It's a specialty. I'm not saying that you need to be uncommonly intelligent to do it, but it is a specialized discipline to say the least.
     
    ...or I have been so disconnected from modern high level languages that I've got it all blown out of proportion and masterful coding is only weeks away.
     
    Please tell me that's the case...

  87. Re:Why should a non-techie learn programming? by Anonymous Coward · · Score: 0

    Spoken like a lawyer... cya(cover your a...s).

  88. What's the point? by srothroc · · Score: 1

    Seriously, what's the point? I'm not saying it's pointless, but if the goal is to learn more about technology, why programming? Unless you're actually going to use it somehow, it's going to be a tremendous pain in the butt to learn and retain all these new ideas. Even if you do learn a bit about programming, there are always going to be professionals out there that can do it faster, more efficiently, and more securely than you can -- and if it's something for a business, you should probably be going with them.

    If all you want to do is learn more about technology, subscribing to Popular Mechanics and reading it every month would be a good place to start. Or even just reading Slashdot every day.

    If the goal is to learn more about computers, then it would probably be a lot more practical to learn about hardware than programming. Learn what the different basic parts of a computer are, what they look like, what types there are, how to replace them... that kind of stuff.

    For a car analogy, instead of learning about the software that makes your car work, you should be learning about how to change the fluids and diagnose simple problems, check the tire tread... that kind of stuff.

  89. About thinking by dbIII · · Score: 1

    It's possible that all those times I had to wait in line to get thirty minutes at a terminal made me a better programmer. I got used to thinking a lot about what I was going to write before typing it in. Pity I don't apply that to slashdot posts.

  90. Oh really? by leftie · · Score: 2, Insightful

    I disagree.

    I don't need a "mindset" to sit down and start reading.

    I just need to sit down and start reading. Once I sit down and start reading, I start learning.

    Funny how that works.

  91. Javascript Tutorial by nicholdraper · · Score: 1

    I wrote a little Javascript tutorial that I teach to scouts to satisfy the programming requirement of the computer scout merit badge. I haven't gotten much feed back from people who have just seen it on the web. http://nicholdraper.com/scouts/jtutorial1.html. I wrote it because anyone who has access to a computer has the tools to execute this little tutorial. The scout merit badge has a good introduction to computers. I wouldn't recommend how I learn languages to a non-techie, I've taught a couple dozen scouts and only the techie ones really finish. But everyone should understand the idea of a machine processing data. Techie people want to understand deeply, non-techie people want and overview. So much more than a very simple Javascript program just causes frustration.

  92. The Daily WTF by not-my-real-name · · Score: 1

    The best way to learn is to read The Daily WTF and then don't do what is described in the articles.

    --
    un-ALTERED reproduction and dissimination of this IMPORTANT information is ENCOURAGED
  93. Community College classes aren't free, Frank by leftie · · Score: 1

    Local Community College class is $76 a credit hour now.
    In-state.
    Before fees and books.

    $76 may be simple for elitist overlords like you, Frank. It's real money for the rest of us. Money that is beyond us without financial aid.

  94. Anonymous Coward by Anonymous Coward · · Score: 0

    I learned BASIC and COBOL in the mid nineties using Windows 3.1.
    Is there any hope for me to learn a modern programming?

  95. Don't by sycodon · · Score: 4, Insightful

    I've been programming for 25 years.

    Here's what you'll get. You will learn language A, become proficient in it, get a job using it and then eventually get laid off.

    When you look for work, you'll find that Language A is no longer the "in thing". They want people that know language B, which was introduced 5 years ago.

    The H.R. people will want only candidates that have 7 years experience in language B.

    Then you'll learn B, but someone will come up with B#, B-, B++, B--, all basically the same thing, but with just enough differences that they can copyright it and irritate the hell out of you when trying to figure out where to put the semi-colon

    The H.R. people won't accept experience in the B(variation) that you know, only the B(variation) that they want.

    And then you'll have to deal with language bigots. You know B(variation) but not D? Well then, you are one or more of:
    a) not as productive
    b) not a "real" programmer"
    c) you write buggy code.

    Then the E bigots will dump on the D bigots while the database language "Seroquel" (many programmers know what this is are are probably taking it) bigots watch with amused expressions because they know only their language is a "real" language.

    It gets worse.

    At some point they will change the entire paradigm of application development to a new one where you have less control over how it looks, works differently depending on the user's browser preference and requires giant servers. Sure, you don't have to deal with Installers, but at the cost of submitting your program to the whims of the server, the network and the user's preference of browsers.

    Oh...and H.R. now wants:

    10+ years work experience as a Technical Lead working with the following languages, tools, and methodologies:
    * Technical lead role
    * Agile development
    * Project management
    * Implementing Microsoft technologies
    * Web architecture design and implementation
    * High volume system architecture design
    * Hardware and software load balancing technologies
    * Data replication / ETL technologies
    * Multithreading, socket programming, distributed transaction processing
    * System stress testing / performance testing framework
    * Business process / rules modeling
    * Business Intelligence tools
    Responsibilities
    * Lead technical teams in designing and prototyping technical solutions
    * Create implementation proposals
    * Review technical designs, code, test plans
    * Create well-designed, reusable objects
    * Create and execute project work plans for the technical team, revising as necessary to meet changing needs and requirements.
    * Communicate and enforce best practice coding standards.
    * Consistently deliver high-quality products and services to clients on schedule.
    * Communicate difficult/sensitive information appropriately.
    * Communicate with customers technical concepts in easy to understand language.
    * Communicate effectively with stakeholders to identify needs and evaluate alternative business solutions with project management.
    * Develop an understanding of clients' business and suggest effective programming solutions.
    Personal Attributes
    * Creativity and strong attention to detail
    * Ability to work effectively on tight deadlines as necessary
    * Effective oral and written communication skills
    * Exceptional customer service skills, including the ability to interact professionally with a diverse group of customers
    * Desire to learn new skills and improve

    Required Skills:
    * Experience as Technical Project Lead, Architect, Lead Developer or other position of major responsibility on mission critical software projects
    * C#, ASP.NET, VB.NET,C++, C, and/or JavaScript
    * Relational databases: DB2, MS SQL Server, and/or Oracle
    * Experience designing and coding superior technical solutions, creating and executing well designed and reusable objects, efficient and logical databases for clients, project work plans, revising as necessary to meet changing needs and requir

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
  96. Why not start with databases? by Estanislao+Mart�nez · · Score: 1

    I wouldn't start with database stuff until you have a programming language or two mastered [...]

    Frankly, I don't see why somebody shouldn't start with databases if they feel so inclined, other than contingent practical obstacles (many books about databases assume you already know how to program). There's a lot of very useful stuff you can do with databases even if you don't know how to program. You can load data sets into a database and write custom queries that answer all sorts of useful questions about the data, just by knowing how to use a graphical client and a moderate amount of SQL.

    For somebody who's more into the market side of things rather than the programming side, actually, data modeling knowledge might be more useful than strict programming knowledge.

    I second the MySQL = FAIL assessment.

  97. Try BlueJ by haemish · · Score: 1

    Learning Java is remarkably valuable. An easy way to start is with a cool tool called BlueJ from bluej.org. It's a "teaching IDE" that's used to teach people programming who have never programmed before. There's a textbook that comes with it. It's been used by literally millions of people all over the world.

  98. Web programming book by Anonymous Coward · · Score: 0

    This book seems to be helpful. It teaches HTML, CSS, JavaScript, PHP and database programming for beginners.

    Web Programming Step by Step
    by Marty Stepp, Jessica Miller, and Victoria Kirst

    http://www.webstepbook.com/

  99. Start with web by Anonymous Coward · · Score: 0

    As a non-geek by training (history/economics), I got started with web. I recommend making Drupal sites as an introduction to programming. Drupal is a very practical platform for solving all sorts of problems, and is a lot like programming without all the code. If you catch the bug, you'll move on from there.

    Here's how I grew up, technologically speaking :
    * HTML/CSS in dreamweaver (cleaning up OCRed documents)
    * HTML/CSS, hand-coded
    * Drupal
    * PHP
    * Linux server administration
    * Java

  100. Not hard to start - just take it a bit at a time by dbIII · · Score: 1

    Pen down
    Forward 30
    Pen up

    That's telling a computer what to do in logo. While it may seem trivial to send a virtual turtle around the screen it's not a big step from there to milling machine G-codes or AutoCAD lisp.
    Playing around with a scripting language or a shell should give you some ideas - even the bash shell can give you GUI checkboxes etc if you use "zenity".

  101. Don't discount it too soon. by Estanislao+Mart�nez · · Score: 1

    Database programming is the most boring shit ever.

    Some kinds of database programming only. Transactional applications can be very boring, yes; they tend to be about inserting and looking up single records. Analytics, on the other hand, can be pretty interesting, because it becomes about how to use large data sets to answer complicated questions. Basically, the more interesting kinds of database programming are a more advanced, larger-scale version of the stuff that the more advanced spreadsheet users tend to do.

  102. Re:Why should a non-techie learn programming? by TapeCutter · · Score: 2, Informative

    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, 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.

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  103. Re:why should a non-techie learn to program??? DON by dbIII · · Score: 1

    What if he's really just asking how to put on a band-aid instead of brain surgery? A very simple webpage with a perl cgi-script or two is no harder for a beginner than it was fifteen years ago.

  104. Pro tip by oldhack · · Score: 1

    What you wanna do is write a C++ compiler. Make sure all the ambiguous cases are resolved according to the latest spec. After that, you can further hone your skill by writing the standard libraries.

    That's enough to get you started.

    --
    Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
  105. Re:Why should a non-techie learn programming? by demonlapin · · Score: 1

    Not necessarily. I'm in a similar situation: I took a couple of CS classes in college, mostly for the heck of it, and learned a little C++ (this was 1996). I learned a bit about algorithms, and big-O notation, and recursion, and pointers. Intellectually very rewarding, very interesting. But it taught me not a thing about how to write "Hello World" for Windows.

    I can think of several small applications for Android that would make my life easier - a custom data entry program for a database I'd like to keep, for example - but I don't know how to write a program in Java, let alone in Android's GUI. "Draw box with the following five questions and text-entry boxes, and then transmit that information to a web page, which will then save it in a MySQL database" is the kind of task that should be trivial by now. Why isn't it? And if it is, where can I learn how to do that?

  106. Re:Why should a non-techie learn programming? by kikito · · Score: 1

    Disclaimer: I'm a professional programmer.

    If you are a high schooler who wants to make some money during weekends, there are more efficient ways of making money than programming (as in: money-per-hour invested).

    You can take a course and go watch a swimming pool. Teach a foreign language / maths / any other thing to younger students. Or just work as a part-time waiter. You can probably get on those fairly quickly, and get a decent amount of money.

    Programming, on the other hand, requires a very significant initial investment of time, without no benefits. And after that, the dollars per hour that you will obtain as an amateur programmer will not surpass the waiter's.

    So my advice is: do it only if a) you are passionate about it or b) you picture yourself spending the rest of your life doing that.

  107. RTF O'Riley book, beats the little padded room by Anonymous Coward · · Score: 2, Insightful

    "Pick a project and work out the language by trial and error! Whee!"

    This is the path to madness. When you're breaking your way into the tech world, starting from outside, it's easy to find yourself with a problem where you don't know enough terminology/context to write an effective google query, and no idea how to read the answers your query returns... a situation where continued effort produces vanishingly small returns. I once spent well over an hour just trying to guess what the key notation "M-x" meant on an academic linux app (having not encountered emacs). "M?" I ask you.

    It is so much simpler to start out with an O'Riley book. Many of them begin with the very basics, are mildly sarcastic, and have all the benefits of RTFM... a few chapters in you'll know little details that the trial&error folk haven't picked up in a decade of experience.

    Once you've got a grip on the basics, *then* you pick up a random project and try your luck.

  108. RE: How Should a Non-Techie Learn Programming? by emeitner · · Score: 1

    First off, stop considering yourself "a non-techie." That will help immensely. Second, don't seek to become "a techie". That will help even more.

    --
    Guru Meditation #6d416769.21610a21
  109. Hire a programmer! by cdn-programmer · · Score: 1

    A non techie should focus on what they do well and hire a programmer.

    There is no way a non techie can begin to compete with what a good programmer can do. There brain space is just not big enough.

    I am a programmer and I am a businessman. I have one foot in each of two canoes. I have had to remove my foot from the programming canoe. I like it - I wish I could go back to it. But my brains are simply not big enough to do both.

    We have doctors who will be doctors. We have microbiologists you will be microbiologists. We have lawyers who will be lawyers. We have micologists who will be micologists. We have poets who will be poets.

    Very few are gifted enough to pursue more than one field. But of those who are able to place one foot in each of two canoes - they don't need to ask the question in the title of this story because they already know the answer.

    A non-techie is simply a non-techie and they are unsuitable to be programmers because you need to be a techie in order to be a programmer! Its as simple as that!

    BTW - I hire accountants too. I'm not an accountant and never want to be one. No successful business is going to have one guy doing everything - that is unless that one guy wants to be a slave to his own business and then who does said guy pass it on to when he is too old to do it anymore. If you can't leave your business to your kids then IMHO you failed.

  110. Re:Why should a non-techie learn programming? by demonlapin · · Score: 1

    This is the sort of thing that I - and I suspect many others - want. I will never write a "real" website, but I'd like to be able to cobble together some little script-level work to knock out stupid tasks. You don't have to be a mechanical engineer to change your own oil, and you shouldn't have to be an elite programmer to do something as simple as a complex search-and-replace.

  111. Re:Why should a non-techie learn programming? by demonlapin · · Score: 1

    What if it's a simple internal site? I mentioned this elsewhere in this thread, but you don't have to be a mechanical engineer to change your oil, and you shouldn't need a BS in CS in order to write a simple web interface to a MySQL database.

  112. They shouldn't. by thePowerOfGrayskull · · Score: 1
    No, no, and no. Non-technical people shouldn't try to learn programming.

    "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.

    No, they're not right. If the best you can do is throw up a small web site, then it will look like something you've... well, thrown up. There's a reason that there are people who make a good living at this sort of thing -- that's because they keep your non-technical ass out of places it doesn't belong.

    If someone self-identifies as non-technical,a nd is learning this profession because they want the money or they feel they have to - I don't want them near me. They almost all write crap code and have no ability to think logically (in the comps sci sense, not in the philosophic sense). You have only to look at the millions of comp-sci grads coming in from India; and those who got into comp-sci here in the States for the money back int he 90s and early 00s. Perfectly intelligent people who can't code their way out of a wet paper bag, and who lack the critical thinking skills to understand that copy and paste is not "reuse".

    Now get off my lawn.

    1. Re:They shouldn't. by svanheulen · · Score: 1

      Exactly. Would you recommend someone that knows nothing about medical science to learn how to perform surgery?

  113. Getting started by Anonymous Coward · · Score: 0

    Technological knowledge isn't exactly knowing how to program. Programming is a world of its own and ranges from collecting requirements for the project, over designing the software, to the coding of the actual application in a language that is most suitable. For a non-techie this is far too much to comprehend just to get an understanding for the tech.

    To get a basic understanding how computer and software work, you can probably get away with reading through related articles on wikipedia.org and what your favorite web search can find. This will help to deal with techies: Firstly you'll have an idea what they're talking about and secondly you know what is technically possible for them to do or what skills they need to suit your needs (when contracting a web designer or hiring a programmer for example).

    Once you realize the extent of the knowledge behind the given tech, you can pick one to 'specialize' on. For example if you're interested in databases you could read a book about designing a database (the model, not the software). SQL is just the language to manipulate and query the data, it doesn't help you understand the principles behind a database.

    As mentioned in other replies, non-techie software can be a security risk and may end up entertaining the readership at thedailywtf.com.

    Now if you're still serious about getting into programming, you would need to work through at least one book from each of the following categories:
    1. A book that teaches you the given programming language (that shows you what you can do with the language)
    2. A book that teaches you the philosophy of programming (which tells you how you should use the language)
    3. A book that teaches you how to design software (how to get from software requirements to the finished application)
    4. And if you chose an object oriented programming language you may also want to look into a book about design patterns.

    As for programming languages, pick a clean, mainstream language with a huge user base to get help easily. Once you understand the principles of programming, it will be easy to learn other languages.

  114. Database + Python by failedlogic · · Score: 1

    I'm trying to find a good book to learn Postgre (or MySQL) and Python. Ideally, I'd like to setup a project to setup a database of stock market and economic data. At least there's some object I can work towards and data is easy to get. Also, the only thing I haven't learned well in computing are databases and knowing a general use computer language really well, I've tried Perl but syntactically, doesn't work for me.

    I've some introductory programming experience from college courses C, C++, assembly and Shell Scripts (not my major and been a long time). I've been able to pseudocode the program I would need to get this project started and what tables I'd setup in the database.

    The thing is, I'm unable to find a good 'classroom' type of book on databases. I haven't found a book with a project in mind. Most of the books I've found have 10 out of 20 chapters on database theory - not that this is a bad thing (at least I have some clarity and I like learning the techie stuff). A lot of the books focus too much on techie stuff that they don't give any insight as to what is next. I've looked on iTunesU, bookstore, on-line and come up empty.

    I'd take it someone who's learned to be a DBA has learn somewhere along the line in a classroom what to do. Also, a lot of programming books have one chapter on SQL and database books have one chapter on using X programming language with X database. Can anyone point to something more useful?

    I expect to royally fuck up the database, it will be slow, unoptimized, and poorly organized. I could probably save 2000 lines of code by using Python modules but I'd like to learn from experience.

  115. n/a by BaileyHankins · · Score: 2, Insightful

    Most people are far too stupid to ever program a computer, no matter what the language. For example, most people are religious and believe all kinds of ridiculous nonsense. This approach doesn't work with computers.

    1. Re:n/a by shikaisi · · Score: 2, Funny

      You've obviously never done an install of NetWare 4. As those with experience will tell you, sacrificing a black cockerel on the night of a full moon was the only way to get it up and running.

      --
      No left turn unstoned.
  116. keep it simple by GeodesicGnome · · Score: 1
    I would advise a complete newbie to keep it very simple in the beginning.
    1. Pick on language and stay with it for a while. I would suggest something like Python, Perl or TCL.
    2. Find some kind of text file to work on. Just about anything will do: an HTML file, contact list, ... Anything that you can view with a simple text editor. (Stay away from doc files or anything with a lot of special formatting commands requiring a word process, like Word, to view.)

    3. Find out how to read lines from this file and write to standard out (stdout) from your chosen language.
    4. Start playing around writing programs to search for text and print things out. Maybe read the file and write it to stdout. Then change some things before writing it back out (like changing all "Bill" to "William"). Just play around and learn how to use the language.

    5. When you get tired of this, set up (or get someone else to set up for you) a web server that can support CGI (Common Gateway Interface, NOT Computer Generated Imagery). (You can do this on your own computer. Just point your browser at http://localhost/ This will let you generate simple web pages with the kind of programming you just learned. You write little programs, drop them in the right directory and suddenly you can generate dynamic web pages. This is just to keep it fun. Now you can start learning HTML, which can start out really simple using just 5 or 6 lines of HTML.

    At this point you will have the basics down and can start doing more complicated things.
    Some other suggestions:

    • Keep away from anything Object Oriented at first. You don't need that complication and will appreciate it more later.
    • C is a good language for starting out, but it requires a compile and link step that can confuse some beginners. If this doesn't bother you, C is an excellent foundation for anything that will come later, especially C++ (for the MS/Windows world) or Objective C (for Apple Mac, iPhone, iPad).
  117. Because PHP is BASIC with web extensions. by hkz · · Score: 1

    Simple. You don't have to install anything to use PHP (let your webhoster take care of that), and you can see the results immediately in not just a sandbox but *in your actual browser*, which is tremendously gratifying to a newbie.

    While Python is obviously the better language (I really won't defend PHP there, the language is patently silly), the trouble of having to install it and then use a console for your output is going to turn people off. Most won't even get past the download-and-install stage, and the ones that do, will miss the thrill of having something that "does something cool" and is shareable with others through the web.

    1. Re:Because PHP is BASIC with web extensions. by SanityInAnarchy · · Score: 1

      You don't have to install anything to use PHP (let your webhoster take care of that),

      There are hosts out there which provide Ruby on Rails stacks, so this is irrelevant.

      you can see the results immediately in not just a sandbox but *in your actual browser*

      You can do that with any language. In fact, this is even faster to set up. Seriously.

      --
      Don't thank God, thank a doctor!
  118. Feed a man to fish... by JBritt1234 · · Score: 0

    My thoughts are, if they can’t figure out Google enough to see what is commonly used and then teach themselves Well, then, they don’t need guidance. They are not technical/ A DBA/Developer etc in nature and would need too much “help”. Set them free to go back to business or whatever and leave the tech up to the tech folks. If someone has an aptitude towards DB’s, programming, computers in general, they don’t have any use for this FAQ.

  119. Re:Why should a non-techie learn programming? by digitalunity · · Score: 1

    I think small business owners really need a lot more broad architectural knowledge. There is a wealth of OSS software out there, ready and willing to empower business owners and bring their technology costs down.

    With just a dabble of everything from scripting to SQL to installing packages, any business owner should be able to manage a reasonably small domain with a mail server, web server and website.

    --
    You can't legislate goodness. Let each to his own destiny, by will of his freely made choices.
  120. Your smoking by Anonymous Coward · · Score: 0

    I can't even get non-techies to USE a computer correctly, and understand the basics, and you want them to learn to program..
    WHAT ARE YOU SMOKING?

  121. I regularly teach programming to English majors by Dennis+G.+Jerz · · Score: 2, Insightful

    For about 10 years, I have been teaching Inform to students (mostly English majors) in courses that combine writing with media production. I start them off with HTML and CSS (just to get them familiar with the level of accuracy required of any kind of coding). I've also taught Flash, but this fall I will probably drop it to make more room for Scratch.

    The point is not to make these English majors into professional programmers, but rather to familiarize them with fundamental processes such as iteration, versioning, scaling, beta-testing. To someone who has never written a computer program, even very simple concepts such as if-then statements and variables can be completely baffling. I notice that students who play old-school text adventure games are at first very unforgiving about the limitations of the parser, but after they've programmed their own short games, and watched their beta-testers come up with reasonable vocabulary words that they expected the programmer to have implemented, students are more ready to appreciate when a text-adventure author has done a good job anticipating the user's actions. This is a lesson that, I hope, translates to their encounters with other interfaces, making them more willing to take beta-testing seriously, in the future, when they might be writing the copy for team that includes programmers.

    --
    Literacy Weblog http://jerz.setonhill.edu/weblog
    1. Re:I regularly teach programming to English majors by grikdog · · Score: 1

      Congratulations on finding work as an English major! My hat is off. I had to bootstrap myself through Turbo Pascal, Microsoft C, R:Base 5000 and dBase II, plus required reading in Donald Knuth's heapsort chapters, before I could find work of any kind, back in 1984. Oddly enough, it was a senior level course on Noam Chomsky's transformational grammar that caused the penny to drop, in my case.

      --
      ``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
  122. Mod Parent Up by commrade · · Score: 1

    This could actually work.

    Don't forget that C++ is a proper super-set of C. That would mean you'd have to write libc itself too and in the process learn a bit about system calls.

    Might even be the fastest way if you are good enough. See you in 5-50 years.

  123. Program Verification for General Students by Capt.Albatross · · Score: 1

    I was amazed and delighted by this: http://www.sci.brooklyn.cuny.edu/~arnow/ED/correctnessproofs.html "Program correctness proofs have recently been successfully added to Brooklyn College's required course on mathematical and computer literacy for the general student". They are apparently teaching 'non-techie' students at least the rudiments of a skill that I would bet a majority of 'professional' programmers have not mastered.

  124. Wordpress as sample code? by dindi · · Score: 1

    Using a complex CMS system to learn to code, is like learning how to turn a wrench on the space shuttle.

    Sorry, first read a book on programming (I am serious if you are a non-tech that is lesson one).
    Then a good idea would be to learn at least a basics, data structures, operators, iterators, etc..... Then make something really simple, that has a little bit of everything.

    But all that aside; I do not understand the concept of a non-techie programming. It is like a life guard who never cared about swimming. If you start programming you will become a techie to a certain level at least, otherwise you won't be programming.

    I know people who copy-paste large amount of code and then try to do simple things, then they are stuck because they do not understand what they used. They use the visual editors and jump into OOP without knowing the basics. That is what you can accomplish to run at a complex CMS without knowing the basics.

    Then again, I am not saying go with Assembler, LISP or something you never use again. PHP is a good choice for web, but if you want to learn how to write a threaded application, a tcp server or client, and in fact anything that would run on a server or desktop, PERL or even C would be a better choice to learn.

    Just my 2c

  125. Learn what is applicable to your field of interest by gig · · Score: 1

    First of all, get a Mac as a workstation if you are a non-techie. Use any Unix on servers. Use no Windows or Microsoft products. This is by far the best advice you will ever get. If you ignore it now you will regret it later when you finally find out I was right.

    Don't learn "programming" because that is too broad. Don't pick a language to learn intending to program in some other language later. Very few people can do that, and typically they are the ones who were programming at 13. It is a fascinating discipline all on its own, but I recommend you be very practical if you are a latecomer.

    Instead, learn the kind of coding that goes with whatever you are actually interested in, and learn and use even basic programming skills to enhance your work in that field. For example, a graphic artist can work on one photo at a time in Photoshop, but if they learn AppleScript, they can write a 20 line AppleScript workflow that can make Photoshop process thousands of photos an hour unattended, and then he or she gets to be the boss of the other graphic artists. Other programming languages are not as valuable in graphic arts and other creative fields. In some businesses, Java is huge, in others, being able to make an iPhone app is huge. In marketing and communications and many other fields, being able to make Web code can be advantageous, for websites and email campaigns. Go where your existing knowledge takes you, and program there and drink everybody else's milkshake.

    There are already plenty of programmers. What is missing are non-programmers who can do enough programming to be dangerous in their own field so they can solve everyday problems. The guy who created the World Wide Web was a physicist who wanted to solve the problem of scientists sharing documents with each other for peer review. He was not necessarily the best programmer in the world, but his knowledge of the problem he was solving made him the best person to solve that problem with programming.

    If you learn Web code, learn the DOM (Document Object Model), not the languages. Learn what UTF-8 is and use no other character encodings. Learn how to build a DOM by marking up a document with semantic HTML, learn how to modify that DOM by styling it with CSS, and then learn how to rewrite that DOM programmatically with JavaScript. Don't get the huge thick JavaScript book and learn everything about JavaScript; get "DOM Scripting" by Jeremy Keith and learn the parts of JavaScript that relate to the DOM, which is a much smaller and much more useful task. Everything in Web development revolves around the DOM. After that, if you continue, learn basic Apache configuration. Apache is built-into your Mac, and is already running, so it is not hard to learn to make it do tricks. After that, learn a server language, probably PHP, so you can cause Apache to create pages on the server on the fly, and collect the information from forms and other common tasks. PHP and many other server languages such as Perl and Python and Ruby are built-into your Mac, ready to run, you just have to turn them on. For an editor, use TextWrangler which is free and is the lite version of BBEdit until you optionally buy BBEdit or find something you like better but you probably won't. Use the very cheap Acorn for graphics until you optionally upgrade to Photoshop and Illustrator. Use iMovie which is included in your Mac for video, and the cheap QuickTime Player Pro for encoding. Use GarageBand which included in your Mac for audio. Use the cheap Transmit for interacting with remote Web servers. Adhere to standards such as W3C HTML5 and ISO MPEG-4 at all times. Test in Safari and Firefox. Use browser-specific hacks that are made by experts -- such as the one that makes Firefox handle standard audio video -- don't put hacks in your own code. Write as little code as possible, make it readable.

    If you don't like the above paragraph, don't get into Web coding. Just learn to use SquareSpace. Also a marketable skill.

  126. The MIT Way by backspaces · · Score: 2, Insightful

    Do what MIT does: teach Programming first .. via Scheme!

    Look, there is no "right way" to start. MIT presumes you need to learn about what programming is all about first. Then they teach Java, C/C++, MatLab and so on later on in engineering and science classes. They created a nifty system, Processing(.org), that takes the sting out of Java and uses it to show designers how to hack.

  127. Time, Computer, Desire, Curiosity and Time by codgur · · Score: 1

    So I got a 286 from my uncle when I was like 21 years old. It had 4MB RAM 30MB HD couldn't execute in protected memory so everything was command line. I spent countless hours figuring out this thing called DOS. I looked at debug and figured it out. Got some books on assembly, read them and created a 50 page printout of code that was a simple screen saver that simply swapped the current screen for whatever I wanted. It felt good, powerful to be able to manipulate this machine to do as I wish. So now I'm older still programming an loving every minute. Languages come and go but good fundamentals will always help. Those are: Never give up (majority of CS problems are solvable. Most problems cause us humans to give up way before we should. Keep at it.). Use a search engine (someone's done it before you just need to figure out how to do it now) Get your hands dirty. (nothing like compiling and testing and seeing what happens) This is a profession that is always changing, always something new to learn and never gets boring. If you like stable sure things this is not for you. Dynamic, slightly ADD, multitask like crazy, get easily bored. those are the traits.

  128. Go with SQLite. by SanityInAnarchy · · Score: 1

    For two reasons:

    First, SQLite has a niche that isn't going away anytime soon. As a trivial example, it's perfect for anki.

    Second, the last thing you want is to have to become a DBA or a sysadmin, or pay for shared hosting, just to get started learning something. SQLite is available as a single command, which can be downloaded as a single binary on Linux, OSX, and Windows (unless it's already in your distro/repository/OS), and databases are just single files, with no maintenance other than (maybe) the occasional vacuum.

    The downside is that, while SQLite is easy and intuitive (with great reference documentation) for anyone who already knows SQL, it probably doesn't have many intro books written for it.

    --
    Don't thank God, thank a doctor!
  129. Try Ruby by SanityInAnarchy · · Score: 1

    I know I'm buried, but I don't know where I can legitimately inject this...

    Spend 15 minutes here. If you understand what's going on, you can start taking it more seriously -- pick a language/community (I recommend Ruby), ask around for the best books on the language, and get the fundamentals of the language down. This may not be as instantly gratifying, since you'll be on a commandline most of the time, but it'll work. Then move on to frameworks, pick a solid open source one, and build what you want to build.

    Oh, and learn Git, somewhere between learning the language and learning the framework. You're going to need version control, and distributed means it's easier to start with, and it scales. Plus you'll be able to use Github.

    Or you could learn just enough to put something together with PHP, but the result is going to be yet another program by a non-technical person. That means bugs, vulnerabilities, inefficiency, classic design mistakes, unmaintainability, and just generally bad things.

    The question is, really: Do you want to become technical? Or are you just looking to cut out the technical middleman?

    --
    Don't thank God, thank a doctor!
  130. first language criteria by Anonymous Coward · · Score: 0

    The first programming language that you learn should be one with a quick return on investment, in order to keep you interested. A quick return on investment means you shouldn't have to read 400 pages worth of programming textbook before you can do something fun.

    And the quicker the better. I learned BASIC first. You can type one line in immediate mode and get an immediate result, e.g. PRINT "HELLO." Contrast this with most modern object oriented languages wherein you have to create a namespace, then create a class, then instantiate the class, then write a method that prints hello, then call the method. In the latter case, it is too easy to become discouraged with how much work must be done just to accomplish something simple.

  131. Python by SQL+Error · · Score: 1

    Learn Python. (Ruby is good too.)

    If anyone suggests you learn PHP, punch them in the face.

  132. Run before you can walk? by svanheulen · · Score: 1

    There's enough bad code out there already, the last thing we need is non-technical people adding to it. This would cause the same issues that arise because of people who know how to use Windows but don't know how to use a computer. If you want to program then you need to learn how a computer works first.

  133. No such thing by Anonymous Coward · · Score: 0

    Learning to program is like learning a second language. If you're not going to go there, live, and learn to love the culture, you can forget ever being useful in it. There's no such thing as a "non-technical person" ever learning how to program effectively, and there never will be. It's like saying "How can someone who hates math learn calculus?"

  134. WAMP! by Anonymous Coward · · Score: 0

    just download and install one of this http://www.wampserver.com/en/ take a new book on php, old book on HTML and start experimenting :)

  135. They shouldn't by Anonymous Coward · · Score: 0

    Seriously. Think I'm being too harsh? Think back to all those HTML abominations you've encountered. These people can't get presentation logic right, what makes you think they'll get business/domain logic right? It's like pr0n -- leave it to the professionals for god's sake.

  136. contradictory question by samantha · · Score: 1

    You can't remain a "non-techie" and learn how to be proficient in a techie area like programming. You have to chose whether you want to give up being a non-techie. If you do then roll up your sleeves and learn it like anyone else. I would recommend downloading python, getting the online freebie, "Dive Into Python" and work your way through it. Then read a book on Data Structures and one Algorithms. Next work your way through a few of the problems on Project Euler. By that time you will no longer be a "non-techie". I hope that is OK with you.

  137. fencepost problem by stimpleton · · Score: 1

    Within the first week of learning you will encounter loops such as "for", "do" and "while".

    Do a search and read about the "fencepost problem".

    Realize you need to know these concepts for your loops, while syntacticly correct, may contain a bug.

    Programming is not all about just language.

    --

    In post Patriot Act America, the library books scan you.
  138. Head First books are the best for non-techies by Anonymous Coward · · Score: 0

    I love Head First series of books. I believe they are great and easy enough to follow for basically everyone. In the scenario suggested I think one should start with "Head First XHTML & CSS" and then move to "Head First PHP & MySQL" or "Head First Programming".

  139. First Learn Formal Logic by Etriaph · · Score: 1

    Buy a book on how to draw a flow chart and see if you can describe each step of a process using that knowledge.  Once you're capable of handling the flow of logic through a diagram you'll be better off learning the flow of logic through a program (as, aside from syntax, it's the same idea.)  After that learn what "types" exist, such as integers, floats, boolean, characters and strings.  If you can hold all of this, thus far, in your head and make peace with what it all means then find a language that's easy for someone to pick up on, like PHP, which basically lets you write a program from the first statement typed.

    Programming is something I honestly feel should be a fundamental skill for everyone; I think the reason why most people don't learn to do it is that they've convinced themselves they won't understand it.  Have confidence that you'll get it and practice.  Remember that good programming is learned over years and not days or weeks.  Try not to get frustrated, the WWW has more than enough information available for anyone to learn.

    --
    "It's here, but no one wants it." - The Sugar Speaker
  140. Good question: used to be Basic, for example by hughbar · · Score: 1

    'm a Perl person, so many will say I shouldn't comment on this at all. I've spent about 35 years 'sweating over a hot computer' as someone once said and I still enjoy a lot of it, although I've partially retired.

    If you read the history, BASIC was designed to give access to computers to non-techies: http://en.wikipedia.org/wiki/BASIC and this is the one belief that uncle Bill [we can't say his name here, can we?] and I share.

    I showed my son some basic BASIC stuff on an Oric Atmos http://en.wikipedia.org/wiki/Tangerine_Computer_Systems in about 1988 [the dates in wikipedia don't seem quite right] mainly: 10 PRINT "HELLO" ; GOTO 10; as he was quite small. He's been programming pretty much, ever since, but he grew up around it too.

    I'm not going to get into a flame war about GOTO or Basic in general, but script languages and some of the open source Basics that are left are pretty good. I've been teaching a neighbour some Perl too, at about this level. I wouldn't try and teach them PHP before doing some of this more 'linear' stuff either. I've been experimenting with Scratch and especially etoys: http://www.squeakland.org/ and I really like the visual object model but, if you're an adult, you can't use it for simple accounting for example or parsing a file. So a lot will depend on intended purpose and age of pupil as previous posters have said.

    --
    On y va, qui mal y pense!
  141. my business by bigtreeman · · Score: 1

    When I wanted to run my own consultancy instead of being employed as a tech.
    I got MYOB, the 19xx/20xx tax packages, loaded a customer tracking database,
    (then built one for what I really needed), paid for some adverts, got my name out there. made a little money.

    Then got an accountant who gave me lots of business advice, did a small business course,
    got in touch with a marketing mate, got professional graphics done, registered trade names,
    built up quality systems.....

    Then got the .... out of IT, now I'm building wooden surfboards and having a great time,
    but of course using computers towards a 'real' end.

    Programming feels like becoming part of the machine,
    you plug yourself in for hours and days and months on end.
    You know that language, you feel it and talk it, live it.

    I chose life....

    --
    Go well
  142. Learn to play an instrument instead. by conares · · Score: 0

    Piano or guitar, really a lot of fun especially during the holidays. In one month you'll learn to play many songs if you put some real effort into it. Your family will love you for it. And when the time comes that youll have to worry about feeding your family, take the guitar and hit the streets. People throw money at sidewalk musicians.

    Seriously, the world doesnt need anymore shitty programmers. What the world does need is parents who spend time with their kids so they grow up to be stable adults. And if there ever comes a time when shitty programmers are in high demand; HP, Microsoft and Acer have more than their share.

    --
    That, that really grinds my gears!
  143. advice by Anonymous Coward · · Score: 0

    i would advice someone, who wants to know more about programming,to learn several language for a short period of time (maybe 4 month, if you study like 10 hours a week). you won't master them but you get insight.
    1) get some basic understanding with a language like java/c++
    2) get understanding of a pc with an assembler, there is an easy to use mips simulator called spim
    3) get understanding in specialized programming language like for web designe (html or php) or something different like prolog (logical programming for basic AI), maybe database language for sql, xml
    that won't make you a programmer, but you might be able to understand some of it.

  144. Re:Why should a non-techie learn programming? by Patch86 · · Score: 1

    The upside of making your pocket money programming (e.g., making websites on your weekends) is that it can feed into your later career.

    Getting into decent courses or bottom-rung jobs can be a lot easier if you're already boasting some small subset of related skills. And passing those courses/succeeding in those jobs is a lot easier if you're already well versed in the bare-bones basics.

    Not to mention that it's better to earn your pocket money doing something you like versus something you don't. Propping up the fryer at Burger King might earn you more money per hour, but why tolerate that unless you're desperate?

  145. Excellent idea by Peter+(Professor)+Fo · · Score: 1
    Education, knowledge and skills beats the alternatives hands down. There's nothing wrong with a non-programmer wanting to learn programming any more than programmers learning creative writing or German or cooking.

    Now there are two reasons why a person might want to have a go at something new: (a) Intellectual interest and I'd-like-to-have-a-go-at-that (b) need. "We're sending you to Germany for 3 months" might be a (b) but things take time and without a GREAT deal of time and effort competence might reach 'OK-useful' but nowhere near 'fluent-reliable'. On the other hand (a) - wanting to explore - (especially when there is a vast area to explore) should lead to personal satisfaction and confidence building that might make a jump to (b) a lot easier (or show you why it is unsuitable for you).

    The thing about programming is nothing to do with a particular language - it's a thought process as basic to a programmer as the sound of words to a poet or shape of things to a painter. To be a good programmer you need, amongst other things, to be able to use your brain.

    Anyway, the complete answer to your question is here : http://vulpeculox.net/ob/Programming.htm

  146. Answer in the question by javarome · · Score: 1

    "Nontechnical people — for example marketers or small business owners" should not learn programming. Instead they should hire programmers or the technology should provide them tools suited to them. You don't solve problems by changing roles.

  147. Learn VBA by dogugotw · · Score: 1

    Here's the tip off... "for example marketers or small business owners"

    These folks LIVE in Excel and Word. VBA is a perfectly good language that integrates with what they use all day, every day. There are tons of examples available. They typically have real problems to solve where the data exists in Excel. For that matter, LEARN Excel. That app has enough bells and whistles to keep a person busy for a lifetime; do they know how to use pivot tables? How about the offset method for chart ranges? Stats? IRR and other financial computations? Connect to remote data sets including web pages? It's all in there.

    The main point, as others have mentioned, is that the key to getting into programming is to have a problem to solve, then pick a tool to solve it. Excel/Word/VBA provides an easy entry point for exactly this to happen.

    If they can do VBA, they can then branch out and learn other languages.

  148. Not at all!!!?? by angel'o'sphere · · Score: 1

    I don't think a non techie should learn programming in part time, from books or by auto didactic ways. Either give him a course and a mentor or just leave it. Further more the idea that a non techie should start with PHP or similar is completely absurd. There are hundreds of things that can go wrong in using PHP, which you had to teach him as well and wont give him any idea about programming.

    The examples where a non techie built up an access data base and then demanded to get a web front end for it and deploy it for the masses (millions of users) are countless. And they simply won't get why this just does not work.

    For instance the boss of the german company web.de (one of the founders a few years ago, not the actual one as the company got sold) did bullshit like this on a weekly basis.

    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  149. Waste of time by hcdejong · · Score: 1

    I'm an engineer who occasionally does a bit of programming. I've found that programming skills need to be maintained, or they deteriorate to the point of being useless.

    I recently did a few Python scripts after about a year of not programming anything. The first few days were filled with 'how did this work again?' and lots of looking up basic information. The first script took me 3 times longer to write than it would have last year. A professional would have taken 10% of the time I needed. I probably wasted more time than these scripts will ever save me.

    Now that's ok with me because I enjoyed the challenge, but it's not a sound business decision.

  150. "Programming" a waste of time -- use tools instead by davide+marney · · Score: 1

    Learning HTML, CSS, PHP, MySQL, C#, SQL Server, and all the rest is a complete waste of a small business owner's time. You didn't need to learn VBA to to make use of Excel, did you? Likewise with the web. You want to stand up a quick web site, then learn how to leverage a code-less tool, such as Google Sites or the dozens of web-based content managers out there with web user interfaces. 95% of the effort to maintain a solid web site is in the content, not the programming. The programming is just the tiny little part done up front, to enable the real work to take place.

    Personally, I've become more and more impressed with just how much work can be done with Google Apps -- the combination of gmail, Google docs, Google calendar, and Google sites. You want to create a shared budget and display it on a web page? No problem: create the spreadsheet in Google docs, setup the sharing parameters, then insert the spreadsheet into a Sites page using the built-in spreadsheet widget. Easy as pie. The spreadsheet widget even lets people edit the spreadsheet right in the web page if you want. Perfect.

    The thing to get over is obsessing over appearances. Unless you're programming a site your customers will be seeing (in which case, hire a professional designer to give you a template), don't give a second's thought to prettiness. Function is everything. Pretty can wait.

    The other critical thing to learn besides programming is how to model requirements. If you learn the behavioral parts of UML -- especially business process modeling notation -- you will be able to intelligently and concisely communicate with programmers, when you need them.

    --
    "We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
  151. Hypercard by ptudor · · Score: 1

    A non-techie should learn how to program with Hypercard. Finding a 68k Mac might be the hard part.

    1. Re:Hypercard by aGuyNamedJoe · · Score: 1

      I must say, my first reaction to the question was "Danny Goodman's Hypercard Handbook" (or whatever it was called). Hypercard really was a great program for the OP's interests. Too bad Hypercard isn't around any more.

      I note that the OP did not say he wanted to become a programmer, merely to learn some technical skills.

      One of the hardest things to learn in this regard is the unnatural precision required -- that is, speakers of natural languages are used to almost every word having multiple meanings, and having amazing flexibility in word choice and sentence structure in anything they want to say. Computers are much more structured and computer languages have much greater constraints. For the purpose of learning, it helps to think there's only one meaning and only one way to say something.

      I think HTML (or perhaps better XHTML) and CSS is a good place to start, actually. Creating/copying a simple web page with HTML and then modifying it by adding a list and then using CSS to change the appearance of some simple elements will illustrate that precision. CSS has the "advantage" that any syntax error simply results in the statement being ignored, without causing the whole thing to "die". The "advantage" to XHTML over HTML is the same -- it's more tightly constrained, and errors simply result in NOTHING. That is, of course, also it's "disadvantage" because a "minor" error doesn't provide much in the way of a clue as to where it is.

      I'm sorry I can't suggest a good book to start with for a total beginner, though.

      I did take a brief look at "Scratch", and that might be a good place to start, too. Don't allow yourself to be put off by it being aimed at kids. If you're a beginner, you want something that's intended to be easy to use to do something "interesting" -- something where you can see the result quickly and easily. After you've changed the color of a fish sprite (a tutorial video I watched) and made a whirling butterfly you begin to see how the pieces fit together.

      As someone else said, if you have a mac available, Automator may be a good place to start trying to do something actually useful.

      Be prepared to ignore many of the remarks from programmers who frequently fail to recognize just how unnatural their normal way of thinking is.

      Oh -- one more thought -- If you want to try something that doesn't require a computer, but will help you to learn to think like a techie, find a "good" book on Plane Geometry and learn to do the proofs and work the examples. Of all the HS math courses, this is the one most like programming -- you have some basic "facts" and ways of combining them and have to make something new.

      Good luck

  152. You sound burnt out by syousef · · Score: 1

    I've been coding for about as long as you have. I've seen all you're talking about. It's stressful sometimes. At the moment I'm between coding Unix C system level stuff (sockets, semaphores, shared memory etc), a VBA course and VBA Excel work, Java Spring MVC and hibernate and support of multiple systems. My job is no picnic, it can be stressful, and I'm not rich, but I've been able to support my family well as the sole earner. The secret is to ignore all the political BS and realise that sometimes you have to do it the way you're paid to instead of the elegant way. I miss the RAD tools of the mid 90s and think Java and the web platform suck. That doesn't matter - I don't usually get to choose what I use to write the system or what is in vogue in the industry. If the platform sucks I still make the most of it. If a job needs to be done my bosses know if they assign it to me it will get done if at all possible, and if it's not I will clearly state why. My success is not language or platform dependent. Learning new languages, new libraries, new platforms, new methodologies, new paradigms...none of that scares me or puts me off. They're just the tool I use to solve the problem, and that is what I love doing (particularly for interesting problems).

    My first IT boss told me I'd never succeed. I proved him wrong. Anyone that's told me that since i've moved on and proved wrong. Where I've had a disagreement with someone over the way to do something if I've won out and there have been hard feelings I've moved forward despite them. I've had bosses try to keep me in low paid work or put me down. I've moved on to better positions. If a boss workplace or manager or colleagues put too much in my way to allow me to succeed, I go find somewhere else to work. So far I've had 4 IT positions through my whole career (though worked with plenty

    --
    These posts express my own personal views, not those of my employer
  153. Re:"Programming" a waste of time -- use tools inst by rwa2 · · Score: 1

    You win for being the only post yet to mention UML, in a business process modeling sense, no less!

  154. Wrong question - Drop the "How" by fkx · · Score: 1

    then the answer is - "of course not"

  155. Re:Why should a non-techie learn programming? by I(rispee_I(reme · · Score: 1

    Sounds like a job for javascript. Classes are available at your community college. Free tutorials available by searching google.

    What you describe is relatively trivial. About half as trivial as it was 18 months ago. ;)

  156. Here's the answer. by Anonymous Coward · · Score: 0

    Many people will help you, but only if you do your part.

    AC because quoting a genius (OK, weirdo asshole genius, but I only wish I was such a weirdo asshole!) should not earn karma.

  157. Re:Why should a non-techie learn programming? by I(rispee_I(reme · · Score: 1

    I seldom see it recommended anywhere, but blitz makes a line of programming environments for the basic language that include directx and opengl support, as well as support for linux, mac, and windows. (The latter portion of the previous sentence was to address any concerns that they are not recommended due to platform lock-in...)

    They come with informative documentation and tutorials, and I would advise anyone who knows nothing about programming to try out Blitz3D. I can't see how any more complexity could have been hidden from the user without sacrificing utility.

    Caveats: I hear blitz programs don't run reliably on vista. I am not yet forced to interact with vista, so I can't comment on that. Also, make sure you have the most up to date help documents, as the most recent version is much more comprehensive than older versions.

  158. Re:Don't (do sql) by Anonymous Coward · · Score: 0

    There are lots of jobs that don't need any of that, that are great programming jobs. Here's a hint:

    1. stay away from Fortune 500 and banks. Instead look for smaller places, or larger industrial, scientific and avoid software-is-our-primary-business places. Then you will find yourself a small software team. Okay, so you might find something that belongs on the front page at the Daily WTF, or you might find something great.

    2. stay away from places where someone else is the IT department.

    3. The ideal software team size is four coders and one full time QA/test person, with one clearly acknowledged leader. Anything more is painful, and anything less is okay provided that the product is at an early stage and can be managed by the smaller team.

    4. Join a place where you can be that clearly acknowledged leader, if that's what you want, by being the first hire at a startup, or if you want to work with a small team, find one at size two or three and grow with them.

    W

  159. Scott Adams' take on it by iMadeGhostzilla · · Score: 2, Funny

    ... when Tina the Tech Writer wants to get better pay and tells Alice, "Alice, teach me how to be an engineer. I don't care if it takes all day." And then adds greedily (as Alice is gritting her teeth), "but let's keep quiet about this. I don't want others to get in on this scam."

  160. cs50 by Anonymous Coward · · Score: 0

    try cs50.tv it's harvard's introductory computer science class,
    all the lectures and assignments are online and available free
    its designed for non-techie beginner programmers and you'll learn a bit of C as well as some web development stuff later - MYSQL, PHP, HTML etc...

  161. who laughs at excel macros? by nten · · Score: 1

    They are awesome! I've ported some of my stuff from matlab to both python(with scipy) and vba in excel because matlab licenses don't fall from the sky like donuts. Speedwise the vba just blew the python away. That was not what I was expecting, and neither was the maturity and flexibility of vba as a language. The support for strict typing and the flexibility to use dynamic typing for instance. The support for OO is all there, as is the support for functional-style programing using immutable containers and functors/functoids. I was quite impressed.

    To stay on-topic, the submitters real question was how to get small business owners who can't afford to hire IT support, to make their own webpages. Not having a website is a death blow to a modern small business, and if you can't afford it, then you are better off trying it yourself even if you don't get it right. The exception being support for actual financial transactions which should certainly be done by a proffesional or offloaded to an existing site devoted to the purpose.

    --
    refactor the law, its bloated, confusing and unmaintainable.
  162. Learning to program for Non-Techie is easy by SpaghettiPattern · · Score: 1

    Learning to program for Non-Techie is easy. You have to let someone pay for your learning. That is, join a bank and be prepared to learn anything they need. You'll get to know COBOL very well as the all cracks are turning into pensioners, nobody does COBOL for fun and hence a lack of COBOL application programmers will be there.
    You also will make a very decent salary as anything related to mainframes usually pays well.

    Once you feel comfortable at programming, you move on to some other language you think you like.

    --

    I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
  163. Re:Ruby is irrelevant by ojustgiveitup · · Score: 1

    Ruby's performance is no good - it's worse than PHP. It's a frustration, but this is 2010 and performance is no longer the most important thing for a language to be useful and "general" (whatever that even means).

  164. How should a non-techie learn programming by __aahgmr7717 · · Score: 1

    There are actually two answers:
    programming in general or programming for the commercial web based market.

    Your comments assume a commercial market.
    However, I would suggest completely forgetting about PhP or SQL or Python or C/CC+ or Java. All of those languages do not get to the core of what constitutes good programming.

    Only Nicklaus Wirth has endeavored to formulate precise syntax which is "As simple as possible, but not simple" for programming.

    The evolution of his thinking can be found in the successive development of the languages:
    Pascal, Modula, Oberon, Component Pascal, Oberon-7

    Each has refined and strengthened the programming core.

    I suggest that you start with the open source language Component Pascal and its development environment called BlackBox (everything is hidden unless you explicitly export it) produced by Oberon Microsystems Inc. http://www.oberon.ch/BlackBox

  165. How to Think like a Computer Scientist by Kwesadilo · · Score: 2

    If you've never programmed before, then you will likely need to practice thinking in a logical, structured manner. Certainly, you should learn your first programming language while doing this, rather than take any kind of math/logic course. Unless, that is, you really like that sort of thing. Posters above me have suggested starting a project that you are motivated to complete, finding out what language is most suited to your goal, and learning it as you go. This can work, but you may hit a few road blocks:

    1. When you aren't that familiar with programming, it is hard to know which language is the right one to use. If you have perfectionist tendencies like me, this problem could completely halt your efforts to learn programming. Note: avoid such behavior. For really basic stuff, most languages will be serviceable, but you might get along faster if you use one considered appropriate to your attempted task, simply because more experienced people will know how to fix the problems your run into.
    2. If you aren't particularly creative, also like me, you may not have any projects in your head just waiting for the right programming language. I find it nice when I'm learning a new language without a project in mind to have assignments with clearly defined goals and reference solutions with explanations.
    3. If you learn your first language as need dictates, you may end up doing things the hard way because you didn't know that better options were available. A guided tour of the language features is helpful to prevent some of this. This is also where the new way of thinking comes in. As you learn logic and math (while learning programming, as suggested), you will probably learn some pretty basic algorithms for doing common things, and knowing one half-decent way of doing something will keep you from sticking with some horrible way of doing it because you can't think of anything else

    To get around all of these potentials problems, I recommend the book Python for Software Design: How to Think like a Computer Scientist , which I used when I first learned to program, back when it had a different title. It is available for free here, under yet another title. It's positive attributes are that it uses Python, contains short problems at the end of each chapter (many with solutions and explanations), and explains various things about math, logic, and algorithms as it goes along. Python is a good first language because it doesn't get into details of hardware, it is interpreted rather than compiled (quicker feedback when you change something), and it has clear, simple syntax that enforces good style. If Python doesn't suit you for whatever reason, I would recommend that you seek out a book that professes to teach you how to think as well as how to program.

    I have been assuming that you intended to self-teach, but an introductory computer science course at community college should also work. The quality of your education will depend upon your instructor, but that's not much different than picking up a book and hoping the author knows what he's talking about. I think Allen Downey does a good job, but that's just me.

    If you do one of these things, learn a language, and it piques your interest, learning other languages is a good time to find a project you're interested in and learn the appropriate language as you go, already having the proper mindset and background under your belt.

    --
    This space reserved for administrative use.
  166. Whoa, easy there.. by itomato · · Score: 1

    Basic technological skills do not include programming, and I'll argue that Intermediate-level persons are better off without, as well.

    Let's get your vocab enhanced by 30-50% with the terms involved, and we'll talk if you can actually grasp programming at a conceptual level.

    Teach the 'gist' of computer programming through already familiar concepts - with BASIC if you like. See how many of your subjects are OK with not clicking something.

  167. Your career path expectations need calibration by itomato · · Score: 2, Interesting

    You're an artisan. As an artisan, you apprentice under a specialty with a short life, but exceedingly high payoff, which is it's own reward.

    Increased tenure does not imply increased capability, unlike typical 'Professions', i.e., Plumber, Mechanic, Lawyer, Professor, Accountant, TV Producer..
    Like the brick layer, you are a means to an end. A potentially cushy end, but an end nonetheless.

  168. yep by itomato · · Score: 1

    and it helps you skip that bottom rung (black hole) 'job' nonsense altogether.

    Those who 'can', 'do'. Those who 'can't' deliver pizzas.

  169. Re:Why should a non-techie learn programming? by demonlapin · · Score: 1

    Thanks, that's sort of what I was looking for.

  170. Best bet. by Anonymous Coward · · Score: 0

    You should Learn you a Haskell for Great Good!

    If you want to write programs, learn how to code, which means learning how to organize your ideas and then implement them in the syntax of the machine.

    www.learnyouahaskell.com

    People will tell you to learn the language they use for their job, which just makes you a crappy version of them. Become a hacker, learn something that is general and that nobody will pay you for, then use the perspective to recognize the limitations of other peoples approaches and be better than them for reasons they cannot understand.

    If you want a job as a programmer, learn java or .net or whatever. It's like learning music with an electric guitar - you can sound like everyone else in a week, but you probably won't ever understand music well enough to create something valuable.

  171. Game Maker by Purity+Of+Essence · · Score: 2, Informative

    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

    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/

    --
    +0 Meh
  172. Assembly or DrScheme by Don+Giovanni · · Score: 1, Interesting

    IF you want to know the inner workings of computers I recommend the book Assembly as a first language.

    If you want to start with higher level languages MIT Press put there book "How To Design Programs", which uses DrScheme, a Lisp dialect used for teaching programming, online at htdp.org

    --
    P2P Anonymous Distributed Web Search: http://www.yacy.net/
  173. Re: Totally Agree by Anonymous Coward · · Score: 0

    To learn web development, knowing HTML CSS JavaScript PHP MySQL, your Web Server, keeping Security in mind, getting to know CMS systems and similar frameworks, understanding your Audience and Graphic Design theory and software, then giving professional text content of what will be eventually written, can take you several years!

  174. Re:Why should a non-techie learn programming? by arashi+no+garou · · Score: 1

    In your situation, I'd recommend a kit car project from one of the more reputable kit car companies. You start with a 70's era VW Beetle chassis and engine (or, if you can afford it, a 90's era Mexican VW Beetle chassis -- less rust and wear). You fix anything broken on the engine, using a good, accurate repair guide. Then, using the instructions in the kit, you put the car together, testing and calibrating after each step.

    Once you've got all the under-the-hood stuff done, you can work on the body and getting it looking good. After that, a final detailed inspection and testing phase will make sure it is road-worthy. Once this is accomplished, you can get it registered with the proper authority and put it into service as a working vehicle.

    Optional: You can learn how turbochargers, aggressive suspension and other performance-enhancing technologies work, and apply to your original car or a subsequent car to really amp up your speed and handling.

    Your first car will take several weeks or perhaps months from start to finish; you will be learning as you go along. If you decide to continue building cars past meeting your initial needs, you will find the process will be much smoother and take much less time, even if the next project is a different kind of car altogether.

    --

    Now, replace references to learning mechanical skills with learning a programming language, via starting with an existing small open source project. Who says car-computer analogies aren't accurate?

  175. Re: should non-techies learn to program? by drissel · · Score: 1

    If numbers are important in your job, you should learn the most popular of all programming languages: Spreadsheet.

  176. Don't by Anonymous Coward · · Score: 0

    Don't

    Real programmers would spend mindless hours figuring out why did someone wanted to program without really having idea about it.
    They will not fix it, but simply re-write it.

    Please don't.

    Software is loaded and it is dangerous. Don't play with it.

    Real hackers will spend a few minutes figuring out how to turn your poor programing into a weapon.
    They will exploit it.

  177. I hear this question all the time by Anonymous Coward · · Score: 0

    When people ask me what I do for a living, and I say I am a programmer, usually I get fairly common replies that I'm sure most of us here get. Sometimes I am asked, "Can you teach me?" It's as if it is some easy thing I can supply to them some afternoon. I probably could teach them, but I think programming is about self-motivation, knowing how you learn information, and where to find information. /. does not magically impart unto you the wisdom of programming. Get a book or start googling, and go. Make sure that you have a specific goal and a specific job field in mind, as what you have provided is vague.

  178. Simple programming skills aren't that useful by Anonymous Coward · · Score: 0

    While Programming / Software Development is something a hobbyist can easily pick up, if you want to really build functional applications it is not a skill that you can partially learn.

    I think programming is very easy to learn, but you have to be willing to commit to really learning how to properly develop applications and become a true software engineer in the sense that you can write good quality code. This is something that takes a combination of motivation, perseverance and experience. Ultimately that means you have to invest a lot of time. Unlike learning how to use particular applications or become more technically knowledgable about using computers, you have to have a very deep understanding of computing and software from the perspective of people that build computers and software.

    That said I really wouldn't want to discourage anyone from trying, just to warn them that they should consider what it is they actually want to achieve. I have seen this all to often amongst peers at university who dropped out after the first year and well into the second year of a CS degree. They really did think they could get by without becoming a good programmer, and I can't say I blame them because in my experience very few people warn you going into a CS degree that it is going to involve a lot of programming and you may as well get used to it. Business / IS and IT degrees are a whole different story though.

    Good luck to anyone venturing out into trying programming though, I think and hope the demographic of good programmers will become much more varied in the near future.

  179. Scripting Language by Anonymous Coward · · Score: 0

    I started with HTML and wrote a few simple pages but then realized it wasn't real programming so I looked for an easy entry.

    I wanted to start with C or C++ but 3 books and multiple frustrations with compilers, memory management, and editors later, I discovered Chris Pine's Learn to Program, a beginner book for teaching Ruby to kids. It starts you out with a with getting your editor up and running and dives into Hello World! With 1 line of code! Talk about motivating!!! The exercises are simple, easy and to the point. You learn basic syntax, loops, arrays and iterations, classes, methods, recursive calls, and variable types (string, number etc). By the end of 80 pages, you are ready to get real work done!

    I would recommend starting with any scripting language (Ruby would be my first choice just because that book made it so damn easy) just to get the basics down without worrying about GC and so forth. From there, it is a matter of figuring out what you want to do, then use that scripting language unless it doesn't fit what you want it to do.

    With that 80 page foundation, you can go after a different interepreted language or start to tackle something like C or java.

     

  180. Re:Ruby is irrelevant by SanityInAnarchy · · Score: 1

    Ruby's performance is no good - it's worse than PHP.

    No, it's not. Rails may be worse than vanilla PHP, but Ruby is not worse than PHP, and Rails is significantly better than CakePHP.

    --
    Don't thank God, thank a doctor!
  181. Re:Ruby is irrelevant by SanityInAnarchy · · Score: 1

    Ruby is one of those languages that you learn in addition to another more general language.

    Define "general"?

    Go is interesting, but also incredibly new, and positions itself as "a systems programming language". Not all programming is systems programming.

    V8 is hardly general-purpose -- node.js is interesting, and not the only example, but it also lacks the kind of libraries and bindings you'd expect from a more mature language, at least for that purpose. The biggest problem I have with V8 is the lack of good concurrency primitives, even cooperative multitasking -- it seems to be impossible to pause execution in the middle of a function. (This is, in fact, specific to V8 -- other implementations of JavaScript can do that.)

    Lua is designed as a scripting extension to programs written in other languages -- something other languages, like Python and Ruby, can do just as well.

    Racket is likely the closest you've suggested, but as a Lisp, it fails in at least one respect: Most people are not likely to be able to pick it up easily, which makes it a difficult choice for, say, a large open source project, or an open source project we would like to become large.

    Ruby has much easier syntax, all sorts of Lisp-y features (closures and metaprogramming are easy), all sorts of native bindings (and they're easy to write), and a "killer app" on top of it all. The only thing it's missing as a "general" language is performance, and it's not bad.

    --
    Don't thank God, thank a doctor!
  182. Don't by geekoid · · Score: 1

    It will end bad. Do what you do for other services, hire someone.

    It's like saying how can a non engineer build a bridge? to which I would say, don't.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  183. Re:Why should a non-techie learn programming? by nobodylocalhost · · Score: 1

    My friend, search and replace are doctoral level research projects. Take google for example. It is the cutting edge of computer science. Stupid tasks would consist of sending all clients on your contact list an invitation to your shiny new website using excel and mail merge :)

    --
    Where is the "Ignorant" mod tag?
  184. Re:Why should a non-techie learn programming? by nobodylocalhost · · Score: 1

    Sure, but let me ask you this. Are you going to put any client and/or financial data on your internal site? Further more, can you trust your employees with your business? If there are no client/financial data involved or you can vouch for each and every one of your employees, the by all means. Let me point out one thing, SQL injection happens. Tread with care.

    --
    Where is the "Ignorant" mod tag?
  185. Re:Why should a non-techie learn programming? by demonlapin · · Score: 1

    If you can't trust your employees, you should either fire them or not give them the password to the computer.

    I'll give you my for-instance. I'm trying to track patient movement through an outpatient surgery center. I want to know when they enter the operating room, when they leave the room, who their surgeon was, and what the CPT code was (identifies the surgery being done). I don't care who the patient is, so there's no protected health information involved. I've already got someone recording this on paper, but I'm not going to grant her general write access to the Google Docs spreadsheet that I'm using to maintain data. I just want an easy way to get the data she's already collecting entered into a spreadsheet for me. If I could make it a 10-second task for her, she'll do it for me as a favor.

  186. quickOnTheUptake is full of it by Anonymous Coward · · Score: 0

    Ask quickOnTheUptake to prove he has actual pro experience and also degrees in computer science, let alone if he has been noted as outstanding in this science in publication or trade shows. He does not and has not, and he cannot even prove he's someone credible to take advisement from on this subject in any capacity whatsoever, and on any of those accounts. quickOnTheUptake is just another wanna be bullshit artist who wastes his life on this website posting his no real world experience so-called 'advice' which isn't worth a wooden nickel.