Welcome to DU! The truly grassroots left-of-center political community where regular people, not algorithms, drive the discussions and set the standards. Join the community: Create a free account Support DU (and get rid of ads!): Become a Star Member Latest Breaking News Editorials & Other Articles General Discussion The DU Lounge All Forums Issue Forums Culture Forums Alliance Forums Region Forums Support Forums Help & Search
33 replies = new reply since forum marked as read
Highlight: NoneDon't highlight anything 5 newestHighlight 5 most recent replies
Any programmers in here? (Original Post) woolldog Dec 2013 OP
I found it was easy to learn when I knew what software I wanted to write... Pholus Dec 2013 #1
Hmmm woolldog Dec 2013 #2
Well, I have a few ideas... Pholus Dec 2013 #3
Thanks. woolldog Dec 2013 #4
Best of luck! Do it because you find it fun! nt Pholus Dec 2013 #5
Actually you shouldn't have to spend a penny in the beginning in any language... Locut0s Dec 2013 #10
In solid defense of BASIC for this application. Pholus Dec 2013 #12
That's true... Locut0s Dec 2013 #13
You're a morning person! I apologize I rewrote the post. Pholus Dec 2013 #14
If you aren't selling software and just want to play around, you can get Visual Studio Express 2012 Dash87 Dec 2013 #17
That's a great idea. Personally I just use Linux, it's all free... Pholus Dec 2013 #19
Move to China and India. That's where they're shipping all the programming jobs. nt valerief Dec 2013 #6
ouch woolldog Dec 2013 #7
There are still PLENTY of jobs out there for a good programmer! nt. Locut0s Dec 2013 #11
+1. The "every programming job going to India" is a myth Dash87 Dec 2013 #18
LOL Skittles Dec 2013 #29
My suggestions cemaphonic Dec 2013 #8
I know programming. Not yet fully accredited... Locut0s Dec 2013 #9
I like codeacademy PasadenaTrudy Dec 2013 #15
Link to code academy Yavin4 Dec 2013 #16
I learned in school - start with VB.NET like I did. It's the easiest to grasp. Dash87 Dec 2013 #20
is that taught on the codeacademy site? woolldog Dec 2013 #22
Oh sorry. Yeah, it's Visual Basic .Net. Dash87 Dec 2013 #24
Great suggestions everyone thanks! woolldog Dec 2013 #21
If you're also/more interested in web-coding... Chan790 Dec 2013 #27
Indeed w3c schools is a very good resource... Locut0s Dec 2013 #31
I'm an Open Source Linux hardware kind of guy. hunter Dec 2013 #23
The Raspberri Pi is a great idea. However... Locut0s Dec 2013 #32
The stuff I programmed was years ago. COBOL mainly, benld74 Dec 2013 #25
can you explain your last sentence? woolldog Dec 2013 #26
Businesses who operate their benld74 Dec 2013 #28
If you have an Apple account you should check out iTunesU. Make7 Dec 2013 #30
PERL TrogL Dec 2013 #33

Pholus

(4,062 posts)
1. I found it was easy to learn when I knew what software I wanted to write...
Thu Dec 19, 2013, 10:16 PM
Dec 2013

That keeps you focused on a limited number of tasks, each of which are easier to learn.

Second, you have to know what computer OS you're programming for. Is it Windows, Mac or Unix?

Remember that programs need a compiler and that can cost a fair bit of money.

Let me know and I can continue...

 

woolldog

(8,791 posts)
2. Hmmm
Thu Dec 19, 2013, 10:28 PM
Dec 2013

Those are good questions, I'm not sure how to answer.

I don't have anything in particular I want to do now. Just thought it'd be nice to have that skill. lol

Pholus

(4,062 posts)
3. Well, I have a few ideas...
Thu Dec 19, 2013, 10:40 PM
Dec 2013

1) Go to a good used bookstore. About 10 years ago there was a craze to write "learn XXX in 24 hours" which usually means they have a lot of small lessons that are easily digested.

2) I have a huge bias against the current incarnation of Apple, but the Apple II was the absolute easiest way to learn BASIC which was one of the easiest languages. YOu can find sites like http://www.virtualapple.org/ which run in your web browser. At that point you can learn by "edit" and "run" and the language is very simple and self-contained, yet not completely powerless.

3) Compilers cost money, which you don't want to spend until you reach a level where you need a certain feature and have to pay for it. To learn should stay cheap. Here is a site with a handful of free BASIC compilers and interpreters. I would prefer an interpreter because while it generates slower programs the difference is not that much and it is soooo much easier to maintain.
http://www.thefreecountry.com/compilers/basic.shtml
Warning. I haven't tested many of these....

There are many other ways, I'm just throwing some ideas out there to get you started!

BTW I am not a computer scientists but programming helped me at my job so I picked it up. I have had exactly two programming classes in my life, more than 20 years back. In Pascal of all things....

Locut0s

(6,154 posts)
10. Actually you shouldn't have to spend a penny in the beginning in any language...
Fri Dec 20, 2013, 05:48 AM
Dec 2013

Java, C, C++, C#, just about any language I can think of have very powerful free compilers out there. In fact the only reason to ever spend a penny on a compiler is when you start to get really serious and need the powerful tools that are integrated into the professional IDE/Compiler tools. Just about every language out there has powerful and free compilers available.

And I wouldn't recommend BASIC anymore as it's really outdated and really only sets you down the wrong path at this point. There are many other languages like Javascript, Python, Java and C# that are much better alternatives. Don't mean to sound pushy

Pholus

(4,062 posts)
12. In solid defense of BASIC for this application.
Fri Dec 20, 2013, 09:16 AM
Dec 2013

As far as other languages, I was deliberate in my choices, "obsolete" be damned.

I was considering the required learning curve of an interested but as of yet uncommitted person of indeterminate resources getting started without assistance "in-person." Consider, putting yourself in the position of someone who knows very little
about programming and how many concepts you have to get through to write Hello World:

10 print "Hello World"


vs

class myfirstjavaprog
{
public static void main(String args[])
{
System.out.println("Hello World!&quot ;
}
}


or

#include<stdio.h>
main()
{
printf("Hello World&quot ;
}


I wanted this person, by themself, to create their first program within an hour (including setup of the environment). You will never LEARN to love programming if it takes three days to understand what a library is or why you need the little curley brackets or why that g*dd*mned semicolon has to be on each line. Don't get me started on having to read what a class is and why I have to describe its scope as "public."

I hardly am pushing Basic on its technical merits. The poster downthread who mentioned Python is closer but seriously, if I wanted to be precise that in my indentation I would go back to Fortran and reap the benefits of number crunching.

For this person, my PLAN was to suggest BASIC for the first taste, and if it was good then go PYTHON from there.

to all of you on this one. Now let's start a real flame war. vi or emacs?

Locut0s

(6,154 posts)
13. That's true...
Fri Dec 20, 2013, 09:43 AM
Dec 2013

And for getting your first few programs up and running and having some fun BASIC is still ok. Once you can write a for loop or two though and understand some basics of structure I'd drop it. I'm really thinking of this from the point of view of a serious hobby or more, which who knows if the OP is interested in it to that degree

As for using CLI that's nice but if you were to work in any large development team on any project out there they'd insist you use whatever flavour of the day IDE they are using internally. The powerful debug tools, seamless integration with version management tools, code completion, and much much more really are HUGE time savers when working in large programming projects as a team. Here you are talking about compiling and linking thousands of different source files from different people across different departments, and keeping it all synchronized and up to date. You would not want to do this kind of stuff without an IDE.

Pholus

(4,062 posts)
14. You're a morning person! I apologize I rewrote the post.
Fri Dec 20, 2013, 09:47 AM
Dec 2013

Sorry, I'm trending towards holiday grumpy, and realized I wanted to make another point.

You know, it's all good! But I really did have a method behind the madness.

I shouldn't be rendering an opinion anyway. git, vi, CLI -- That's how I roll. I try to teach my students
the modern things, but in the end I don't appreciate them myself. Needless complications most of
the time...

Dash87

(3,220 posts)
17. If you aren't selling software and just want to play around, you can get Visual Studio Express 2012
Fri Dec 20, 2013, 02:35 PM
Dec 2013

for free. It's a good way to learn before you go on to real projects.

Pholus

(4,062 posts)
19. That's a great idea. Personally I just use Linux, it's all free...
Fri Dec 20, 2013, 02:40 PM
Dec 2013

So I am clueless about what's available for the other, lesser , operating systems.

 

woolldog

(8,791 posts)
7. ouch
Thu Dec 19, 2013, 11:49 PM
Dec 2013

Not looking for a job in programming, but certainly there are still some us programmers!

cemaphonic

(4,138 posts)
8. My suggestions
Fri Dec 20, 2013, 04:09 AM
Dec 2013

First off, you really don't want to start by learning BASIC as suggested upthread. It's archaic and not really used much anymore, so you'll have a hard time finding tutorials/examples for much other than learning the basic functions. It's also incredibly primitive, and its lack of most types of modern control structures makes it hard to do things that are simple in other languages.

Here are a couple of web tutorials that are pretty decent for dipping your toe into programming:
http://csedweek.org/ (This was a recent educational campaign aimed at middle school kids. There's a bit of computer industry self-congratulation sprinkled throughout, but they did a great job at designing a course for absolute beginners that has you quickly doing more fun projects than your typical newbie programming tutorial.)

http://www.codecademy.com/ (More traditional and less flashy, but also a good progression to take an absolute beginner to the point that more advanced material will start to make sense. Caveat - This one has you create an account tied to your email and/or facebook. I think it's mostly so you can track and save your progress, but I'd give it a spamtrap email anyway.)


I'd look at Python as a first programming language. It's powerful enough to be used in all kinds of industrial/commercial applications, but is a bit less complicated than most of the other current workhorse languages. It's an interpreted language, which means that it is possible to run one line of code at a time as you are writing it. (The other, and more common approach is a compiled language, which will take an entire program, translate it into machine language, and execute it in a batch) This is very useful to a beginner, since at any point, you can look at all kinds of little details about what your program is doing, and what state it is in. It will also let you know exactly where (and will make a guess as to why) you have an error in your code. You can get a python interpreter here - just download and install whichever version is appropriate for your OS.

http://www.python.org/download/

There is also Scratch from MIT. It's more of a teaching tool than an industrial-grade programming language, but it is great if you are a visual leaner (since you can "snap" blocks of code together like Legos) It's also designed to let you easily play with things like graphics, animation, and sound, which are fairly advanced topics in most programming languages.

http://scratch.mit.edu/

Locut0s

(6,154 posts)
9. I know programming. Not yet fully accredited...
Fri Dec 20, 2013, 05:40 AM
Dec 2013

I know a few languages, have taken about 1/2 of a university diploma in programming and have fooled around with it enough that I think I know what I'm talking about. Like everything else depression and other things have gotten in the way of making a career of it.

The most common starter language nowadays is Java. The programming industry these days is largely Object Oriented which is quite a paradigm shit away from the old programming languages of yesteryear. While you can start off leaning some of the really simple basics with languages like Basic, Javascript and the like, ultimately if you want to actually learn modern programming these languages are actually detrimental to your progress down the line as they teach you how to think procedurally instead of in an Object Oriented manner. That being said Java is a daunting language to start from, from scratch. I'd suggest looking at what cemaphonic has posted above. Those look like good suggestions to begin with. Interpreted languages like Python have the advantage that they have a LOT less overhead and you can essentially dive right in and start coding. Give those resources a try and see if you enjoy what you are getting out of it. IF you find that you really enjoy it I highly recommend taking a course in Java or some similar Object Oriented programming language like C#, sooner rather than later. Again the reason is if you intend to actually get into programming, even as a serious hobby, you will eventually want to do OO programming, and it's much easier to do that if you learn OO concepts early on when you haven't had a procedural way of thinking burned into your brain. If you are gutsy and want a challenge you can start learning Java right off the bat. Oracle has some very good beginners tutorials here:

http://docs.oracle.com/javase/tutorial/tutorialLearningPaths.html#newtojava

Do everything in the "New To Java" section followed by "Building On The Foundation". The fun thing with Java is its immense API! Once you get the hang of it it's amazingly fun to dive into the API and see how much stuff is there prebuilt for you to use. You can cobble together some pretty impressive stuff early on with simple programming knowledge just from stuff in the API that would take you much more knowledge in other languages.

 

Yavin4

(37,182 posts)
16. Link to code academy
Fri Dec 20, 2013, 12:54 PM
Dec 2013
http://www.codecademy.com/

I suggest going through a few of the tutorials to see if you like to write code or not. It's free. If you like it, join some other groups/forums and expand your knowledge.

Being able to write code for a computer is akin to being able to read and write.

Dash87

(3,220 posts)
20. I learned in school - start with VB.NET like I did. It's the easiest to grasp.
Fri Dec 20, 2013, 02:44 PM
Dec 2013

Even if that's not the one you need (like if you want to make an IPhone App), it doesn't matter. It's the easiest way to grasp the concepts of programming. You can learn the language you need later and it will be easy. Once you know one language, you can learn any of them extremely easily (like a day, or not even) because the structures of modern programming language are fairly similar.

The first step is to grasp the concepts of programming - the what, where, and why. You need to understand how code is structured and why you structure it that way. Knowing the actual terminology is not important in the least bit (if at all) - you can just look the terms up when you need them. Don't even try to memorize them until you know the structure by heart and just want to be faster.

Start with a "hello world" tutorial. Move on from there and don't rely too much on tutorials. Playing around is half the fun and you'll learn faster.

 

woolldog

(8,791 posts)
22. is that taught on the codeacademy site?
Fri Dec 20, 2013, 03:45 PM
Dec 2013

If not, any books or sites you recommend on learning VB.net? (that's visual basic right?)

Dash87

(3,220 posts)
24. Oh sorry. Yeah, it's Visual Basic .Net.
Fri Dec 20, 2013, 05:20 PM
Dec 2013

I wouldn't doubt it's on code academy. It's one of the most popular code languages.

What are you trying to do with scripting? VB.net is more for PC applications. You may want to start with C# instead if you want, for example, to make games. The two are very similar, though, so either is fine (or even Java or C++).

 

woolldog

(8,791 posts)
21. Great suggestions everyone thanks!
Fri Dec 20, 2013, 03:44 PM
Dec 2013

Codeacademy seems like exactly what I'm looking for.

I will also try to look for one of those learn XXXX in 24 hours that Pholus suggested,

 

Chan790

(20,176 posts)
27. If you're also/more interested in web-coding...
Fri Dec 20, 2013, 06:18 PM
Dec 2013

there's also w3schools.com. That's where I learned HTML, CSS, SQL and JScript.

http://www.w3schools.com/

Locut0s

(6,154 posts)
31. Indeed w3c schools is a very good resource...
Sat Dec 21, 2013, 10:18 PM
Dec 2013

I get a little prickly when people lump HTML and CSS in with programming though. Just a pet peeve

hunter

(40,676 posts)
23. I'm an Open Source Linux hardware kind of guy.
Fri Dec 20, 2013, 04:51 PM
Dec 2013

For my personal use Open Source and free software does everything I want it to do. Proprietary software feels very confining to me.

I don't like Java, and I've never had to suffer it.

If my kids were asking me your question I'd buy them a Raspberry Pi and suggest they learn Python.

I'm prejudiced. I think everyone should experience hardware limitations and the Raspberry Pi is somewhat limited, especially when it's running interpreted languages like Python or Java. And those limitations become a motivation to learn C, which has essentially become the universal "primitive" language of most computer architectures.

Heck, I'm posting this from an ancient Pentium III (Coppermine) laptop with 256 Megabytes memory and an 8 gigabyte solid state hard drive (actually a compact flash camera card.) The operating system is Debian, the window manager is LXDE.

http://www.raspberrypi.org

http://python.org

With python and a little hardware experience you can go where your interests or the money take you.

I'm an older guy. My original computer education was Fortran and Unix. As I was leaving university the "teaching" language was Pascal.

On my own I was always messing around with 6502 assembly, mostly Atari 800, some Apple II.

Locut0s

(6,154 posts)
32. The Raspberri Pi is a great idea. However...
Sat Dec 21, 2013, 10:28 PM
Dec 2013

Unless someone really wants to dive into the deep end of the programming pool right away programming on these limited platforms with a language like C is a daunting challenge. I fully agree you don't REALLY know what programming is all about, what is going on at a deeper level until you start to work at the lower level, in C and other similar languages. But that really does entail learning a LOT. If you really want to go down this path I agree 100% nothing could be more enlightening. But unless you are willing to learn about memory allocation and deallocation, pointers and pointer arithmetic, memory addressing, and other minutia, I don't recommend it.

Python is a good idea though

benld74

(10,285 posts)
25. The stuff I programmed was years ago. COBOL mainly,
Fri Dec 20, 2013, 06:08 PM
Dec 2013

BUT those things have been executing everynight without fail for the past 25 years, and God only know how far into the future,,,,,

You could try to specialize, Linux for instance, or a DBA(Oracle), or get your Microsoft certification.

 

woolldog

(8,791 posts)
26. can you explain your last sentence?
Fri Dec 20, 2013, 06:18 PM
Dec 2013

what does it signifiy to get one's microsoft certification? or to specialize in DBA or linux?

benld74

(10,285 posts)
28. Businesses who operate their
Sat Dec 21, 2013, 08:22 PM
Dec 2013

applications may have an Oracle data base on the back end of the application. DBA's would be required to maintain, backup, restore, and perform analysis on the data base.
Businesses also like to have a certified MS person on board especially if they maintain their own Laptops, desktops etc.

Another idea would be to get into the Network side of IT. They ensure a business network if functioning properly, making sure computer traffic flows correctly, take care of the company's firewalls which keep certain people OUT of company networks. Network security is another avenue, when one ensure the privacy of a company network making sure unwanted attacks happen.

Make7

(8,550 posts)
30. If you have an Apple account you should check out iTunesU.
Sat Dec 21, 2013, 10:12 PM
Dec 2013

Search for "Introduction to Programming" and see if anything interesting pops up. I've found the free courses from MIT and Stanford on iTunesU informative. If you view a lecture series, it will at least give some structure to your initial foray into the subject.

As far as languages go, Python is a fairly popular one to start with for various reasons, but a big one is that it usually involves much less typing than many other languages. Although I would suggest you start with some generic "Intro to Programming" online-courses/videos/books and just use whatever language they have elected to use - in the beginning learning the concepts and thought processes involved is more important than the specific syntax of any particular language.

TrogL

(32,828 posts)
33. PERL
Sun Dec 22, 2013, 02:04 AM
Dec 2013

It's a good starter language. You can do damned near anything with it except really get in trouble (that's what C is for). The few bad habits it may teach you are easy to break. Lots of examples out there.

Then move up to a more useful language.

Others are speaking to Python, which I've heard is a good choice but i haven't touched it.

Once you've learned on of those two, you can go to C, which gets you closer to hardware, or over to JAVA, which might actually get you some work.

Latest Discussions»The DU Lounge»Any programmers in here?