previous topic :: next topic |
Author |
Message |
Scribble
Since 18 Nov 2005
636 Posts
NoPo
Addicted
|
Wed May 12, 10 12:03 pm OT Question for you programmers. |
|
|
If I were to learn a programming language as a complete noob which one would you suggest? My only background is a Fortran class from forever ago and some simple Linux commands that I've probably forgotten.
I have a good friend using Python, and he taught himself pretty quickly and is making some good money at it. Anyway he is always looking for help now, and he wants me to learn. He suggested starting with either Ruby or Python, but he is also saying that there is some other good languages out there.
Thanks,
Andy
|
|
|
jdk
Since 21 Dec 2005
333 Posts
Obsessed
|
|
|
rich

Since 30 Nov 2005
306 Posts
portland
Obsessed
|
Wed May 12, 10 1:58 pm |
|
|
what type of work is it that you and your friend are trying to do?
|
|
|
arkay

Since 06 Jun 2008
192 Posts
Manzo/Hillsburrito
Stoked
|
Wed May 12, 10 2:26 pm |
|
|
Agree with the last question. Each language is a tool that typically does a few things well so the choice of language is generally driven by what you want to accomplish.
|
|
|
Scribble
Since 18 Nov 2005
636 Posts
NoPo
Addicted
|
Wed May 12, 10 2:48 pm |
|
|
He does mostly web applications that are used internally by a company or distributed with a product as a service. He uses django and extjs mostly he says.
I am a landscaper who is sick of the industry so I'm looking for other options. I know nothing about programming and do not pretend to, but I've always been pretty good with computers.
Andy
|
|
|
kitebroad
Since 01 Apr 2008
16 Posts
San Francisco
|
Wed May 12, 10 3:29 pm My vote is for PHP/MySQL |
|
|
I think PHP is the funnest and easiest to learn and that skill is also in high demand since it is such a good way to build small to mid-sized web based database driven applications quickly.
I am assuming you want to do web site development/server side scripting. Best thing for that (imho of course) is learn PHP and MySQL (which is an open source relational database) together (don't know if you could avoid it really) so you can start building web apps right off. Those apps are one of the main uses for server side scripting of any type. O'Reilly has some great combined PHP/MySQL books that have stellar project based examples.
Any language you learn well sets the framework for quickly getting up to speed in another since the concepts remain the same, for the most part you just use different syntax.
There are geographical and cultural differences that effect which language is predominantly in demand. Here in Seattle Microsoft casts a long shadow and .net has a stronger presence. Also in more corporatey environments it is usually more popular. But we also have a lot of companies and agencies that use open source linux based alternatives (which I greatly prefer code and culture wise) like java/jsp/php/python/ruby etc etc.
For you I would suggest doing a monster search in your area and just see what the breakdown of required skills are, especially the places you want to work. Since you have a friend that is doing well with Python and has extra work, seems like you can't go wrong there. But first language wise, I think there is so much more support available for PHP/MySQL. Then you can translate those skills into Python later. Employers also know this and will hire based on skill in one server side scripting language for a job that is actually in another.
Someone else would have to champion ASP.net/C# (which I am very curious to hear about) since I got into open source just after it came out. It does seem like a big learning curve and making that choice would mean you couldn't help out your friend without another learning curve to go open source later.
Web development is an absolutely fun way (if you like it) to make a living and it works well for kiteboarders since often you can set your own hours (and sometimes location too) as long as you get the work done.
Nice to be reminded of when I was just starting out...
|
|
|
Scribble
Since 18 Nov 2005
636 Posts
NoPo
Addicted
|
Wed May 12, 10 3:42 pm Re: My vote is for PHP/MySQL |
|
|
kitebroad wrote: |
Web development is an absolutely fun way (if you like it) to make a living and it works well for kiteboarders since often you can set your own hours (and sometimes location too) as long as you get the work done.
Nice to be reminded of when I was just starting out...  |
That's pretty much exactly what I'm going for right there. I am a stay at home dad right now. I'm trying to figure out something I can do from home, or at least learn from home, and something that when the kid goes to school I can have a flexible schedule.
Thanks. I knew quite a few of you are programmers so I figured this would be a good place to get some ideas.
Andy
|
|
|
tinyE

Since 21 Jan 2006
2004 Posts
not really an
XTreme Poster
|
Wed May 12, 10 5:50 pm |
|
|
Download virtual studio express from Microsoft, it is free and has a very intuitive developer interface. If you are new to programming you will need the UI. Php is fun but it will take you a long time to get good.
It really depends on what you want to develop, but if it's pure web, I would learn c#, vb, JavaScript, and SQL. SQL Express is also free from Microsoft. Make sure you get the web development piece of visual studio (I use them all).
You will have fun in the UI, you can see what you are making, and there are millions of google hits on help pages for whatever you are trying to do.
If you want some help getting started, I can help with some ideas for beginner type projects that will challenge you, that will allow you to learn as well
|
|
|
genek

Since 21 Jul 2006
2165 Posts
East Po
KGB
|
Wed May 12, 10 5:53 pm |
|
|
Everyone's responses are quite good so far. I've heard Ruby is quite flexible, but have no experience with it personally. I hate Python's syntax and design, but maybe that's because I come from an oldschool C, C++ background. PHP is pretty easy to work with and learn I think although once you factor in the HTML and JavaScript that goes into a regular website things get more complicated.
Another option that I haven't used myself and have no idea about the demand is the Google App Engine. It allows you to make web apps using only one language for everything. They allow you to pick either Python or Java I believe and have a powerful framework built for your convenience. As usual it's free.
http://code.google.com/appengine/
_________________ The Slider Project, LLC
Support the cause!
http://www.sliderproject.com/ |
|
|
Reaper356

Since 10 Dec 2006
781 Posts
Salem / LC Oregon
Opinionated
|
Wed May 12, 10 7:37 pm |
|
|
Java is pretty common starting language. Its syntax is similar to Microsoft c#, so you can easily branch out.
I have some books if you need to borrow anything.
|
|
|
shred_da_gorge
Since 12 Nov 2008
1342 Posts
Da Hood & Da Wood
XTreme Poster
|
Wed May 12, 10 8:11 pm |
|
|
My advice is to learn more about programming paradigms and patterns than languages. Know which languages are compiled versus interpreted, for starters. I interview "object-oriented" candidates frequently and half of them don't know what polymorphism is or why it would be desirable. If you want to head into the web world, someone who knows databases and data warehouse manipulation and the programming to tie query results into server-based applications is invaluable. If you can take some adult-ed courses in database concepts and programming concepts that's a start.
For languages, Java programmers are a dime a dozen in India. Ruby seems to be gaining popularity and Python is Google's favorite toy. I like C# for raw productivity, though I'm worlds apart from it in my job (embedded systems architect). PHP is a versatile language, but I agree with the person who said it probably won't be your best bang for the buck.
Good luck!
|
|
|
forrest

Since 21 Jun 2005
4330 Posts
Hood River
Hick
CGKA Member
|
Wed May 12, 10 8:17 pm |
|
|
If you want to get a job at a big company making software C# (TinyE's suggestion) or Java (Reaper) are great. Both of those languages have defined ways of solving common development problems and are great when it comes to providing larger solutions to companies. You'll definitely be able to charge more.
If you want to be the more of the kiteboard whenever you want type of developer learn Python or PHP. Both Python/PHP are great, and they allow for much flexibility, you're more likely to be able to whip up quick scripts and web apps with those. Sounds like your buddy could hand you work if you knew Python.
Languages are really only one tiny piece of the skillset. You have to change the way you think about problem solving, break it up into tiny pieces. It's the classic "How do you make a peanut butter sandwich" essay you might have written when you were in 5th grade.
1) Learn the basic logic control structures first: If-Then-Else, Case, For, While, and Do-Until.
2) Then learn about data types: integer, float, char, string, and arrays.
3) Then learn python, php, java, or c# cause they're all really pretty much the same. Once you know one language, they're all very very similar. If you're a real glutten for punishment, or want to see how your computer really works, learn Assembly.
|
|
|
shred_da_gorge
Since 12 Nov 2008
1342 Posts
Da Hood & Da Wood
XTreme Poster
|
Wed May 12, 10 8:34 pm |
|
|
Also if you want a local market indicator, troll http://portland.craigslist.org/sof/ . Note that there's a web position open in Hood River (Summit Projects maybe?). The Silicon Valley software scene can be seen here: http://sfbay.craigslist.org/sof/ . Note that there is a huge demand for embedded Linux programmers but that is also being offshored to India and China at a phenomenal rate (I conference with Bangalore and Chennai at least twice a week). Get used to it, it's here to stay.
|
|
|
forrest

Since 21 Jun 2005
4330 Posts
Hood River
Hick
CGKA Member
|
Wed May 12, 10 8:55 pm |
|
|
A little OT but, How much C++ do you use in embedded systems these days? I was messing around with PIC Microcontrollers for a couple of months but these days everyone just seems to be putting Linux on anything embedded. A few years back I set off to make my own UAV, but I never got past controlling a few servos before I got bored.
I have a new obsession with embedded devices, especially after seeing this presentation: http://www.ssi.gouv.fr/IMG/pdf/csw-trustnetworkcard.pdf
I think people make to much of the ideas behind OOAD. Especially the whole polymorphism is going to save our lives and defend us against alien invaders belief. To me OO was just invented to facilitate gigantic development sweat-shops in India. I do like interfaces though, and I'm pretty sure if I was cracking the whip on 250 developers it'd be really hard not to make them used defined interfaces to interact with each other's code.
shred_da_gorge wrote: | My advice is to learn more about programming paradigms and patterns than languages. Know which languages are compiled versus interpreted, for starters. I interview "object-oriented" candidates frequently and half of them don't know what polymorphism is or why it would be desirable. If you want to head into the web world, someone who knows databases and data warehouse manipulation and the programming to tie query results into server-based applications is invaluable. If you can take some adult-ed courses in database concepts and programming concepts that's a start.
For languages, Java programmers are a dime a dozen in India. Ruby seems to be gaining popularity and Python is Google's favorite toy. I like C# for raw productivity, though I'm worlds apart from it in my job (embedded systems architect). PHP is a versatile language, but I agree with the person who said it probably won't be your best bang for the buck.
Good luck! |
|
|
|
forrest

Since 21 Jun 2005
4330 Posts
Hood River
Hick
CGKA Member
|
Wed May 12, 10 8:58 pm |
|
|
BTW, I think C# is a great idea for a first language.
|
|
|
lance_k

Since 04 May 2005
565 Posts
Hood River
Photographer
|
|
|
rich

Since 30 Nov 2005
306 Posts
portland
Obsessed
|
Thu May 13, 10 8:03 am |
|
|
you could just learn a content management system like drupal, wordpress, or joomla, along w/ some layout stuff like html/css, and be well on your way to doing some great web stuff in very little time. I've done a lot of web programming. Started using drupal to deliver my projects, program very little now and deliver a lot more
|
|
|
|