PDA

View Full Version : What to learn to Program Professionally?



MasterNetra
March 10th, 2011, 02:15 AM
I've been out of ITT-tech for more then a year now with my own Web Design company but its just not working out for me, I don't mind it too much but really just don't care for it. However, back in ITT before I switched my course from Electronics to Visual Communications, I had a "introduction to Programming" class which was VB and I remember it being my favorite class, and even wanted to do some programming course but they had none, that was the only actual programing class they had.
So I had figured I'd switch to VC for that creative aspect, because as it turned out I just wasn't into all the AC, and DC stuff that was being jammed down our throats at redneck speed and just overwhelming my mind. (The AC & DC classes really should of been broken up into multi-part courses, it was all just 1 semester classes for those but i digress).

So. I was wondering, not looking to added to my 45k in student loans, what languages and such should I learn to be able to program professionally?

juancarlospaco
March 10th, 2011, 04:22 AM
Is not the brush but the artist...

wojox
March 10th, 2011, 04:38 AM
C/C++ can't go wrong.

LoneWolfJack
March 10th, 2011, 07:07 AM
if you are looking to get started, many programmers will recommend python. nothing wrong with that, but I'd recommend PHP instead because of its excellent documentation.

other than that, you should be aware that becoming a master programmer will take you about 10 years of time and dedication. don't let yourself be fooled by "learn java in 21 days" books and alike.

ve4cib
March 10th, 2011, 08:17 AM
C and C++ are good things to know, but outside of a very small set of areas they really don't get used much in the business world. They're definitely worth knowing, and knowing them well will make you a better programmer in the long-run, but if you're in the "I need to get hired ASAP" boat they're probably not as immediately useful as other languages.

In terms of "I want to put this programing language on my resume because it will get me hired" languages, anything in the .NET universe is a good place to start. Let's be honest: Windows has a huge user base, so lots of people will pay to have people write Windows programs. C# or VB are the best bets here. I'd lean more towards C# since it's just generally a nicer language that gets taken a little more seriously.

Javascript is a good language to know as well, since the web is a pretty major part of most peoples' computer experience. To be a good JS programmer you'll also need to know about HTML, CSS, and some kind of server-side language (e.g. PHP, Python, C#/ASP.NET, etc...) in order to maximize your hireability. Knowing JS is good, but knowing how to make a browser talk to a server, and get the server to respond is better.


So with all that in mind I'd say that picking up C# is probably your best bet from a professional perspective. Get yourself a copy of MonoDevelop and/or Visual Studio (MS has a free version of VS you can download; it doesn't have all the features, but it'll get you started anyway) and start experimenting. There are LOTS of C# examples, snippets, and tutorials out there. It's a very popular language, so documentation is easy to come by.


Another good piece of advice would be to check out job postings for IT/programming positions in your area and see what they require. That's ultimately the best advice I can give you. Look for what skills people are looking for, and learn those.

Some Penguin
March 10th, 2011, 09:05 AM
Initiative, discipline, and analytical skills.

fct
March 10th, 2011, 02:39 PM
Fastest path to job finding goes thru Java and/or C#. C/C++ are good choices too, but not so many job offers.

As a bonus knowledge of SQL and system administration is usually appreciated by employers.

Edit: plus web development (HTML, CSS, javascript, etc.)

trent.josephsen
March 10th, 2011, 06:23 PM
All the previous responses hold good advice. I'd like to add just one fact that is often forgotten: everything varies. It varies from month to month, city to city, state to state, industry to industry, company to company.

I got my current job because I have Perl experience. If I'd applied several months earlier, they probably would have been looking for a Java programmer (and, ironically, I would have been better qualified for that job than I ever was for this one). I work at a university -- if I'd applied to an actual software company, it would likely have been something different. If I'd applied in the next county, it would have been yet another.

Seeking a programming job is completely unpredictable -- you can't know what will get you hired until you do the legwork. If you're serious about being paid to program, this is the most vital thing you can do. Figure out who hires programmers in your area (or the area in which you would like to work), send them some nice letters, find out what tools they use and what skills they need. You can get advice from us, but you might spend two months studying Java or .NET or whatever and neglect the most important skill that would have gotten you hired if you'd asked first.

N.B. Skill is not all about programming languages. Revision control, design patterns, operating systems, project management, bookkeeping, database design, network hardware, and digital logic are all candidates for topics with the power to get you hired. I'm not saying all (or even any) of these things are essential; you can't know until you do the research, but any number of these might be important to the job you apply for, and your potential employer will be more than happy to hire on someone who doesn't need to be trained as much as the other candidates.

shawnhcorey
March 10th, 2011, 07:07 PM
So. I was wondering, not looking to added to my 45k in student loans, what languages and such should I learn to be able to program professionally?

If you're a novice, I recommend one of the scripting languages: Perl, Python, Ruby, or PHP. If you do know something about programming, I'd say C/C++ or Java. If you want to web development: HTML, CSS, Javascript, AJAX, a scripting language, and SQL.

lykeion
March 10th, 2011, 07:15 PM
Interesting thread, I think LoneWolfJack, ve4cib, and especially trent.josephsen have made some valid points here.

ratcheer
March 10th, 2011, 08:13 PM
Unfortunately, the major demand I have seen in the past couple of years is for .net programmers. Next would probably be Java.

Tim

The Cog
March 10th, 2011, 08:19 PM
I learned java a while ago, and I have to say that there is a huge amount of documentation, and it is high on the job adverts lists, so that might be a good move.

An off-the-wall suggestion too: I hear that COBOL programmers are earning lots because they are in short supply. It's not a cool language that the newcomers want to know, all the experienced ones are retiring, but lots of big businesses rely on it for core operations.

wmcbrine
March 10th, 2011, 09:34 PM
redneck speedBTW, the phrase you were going for here is "breakneck speed". I have to imagine that "redneck speed" would be pretty slow, actually. I LOLed. :)

MasterNetra
March 11th, 2011, 04:13 AM
BTW, the phrase you were going for here is "breakneck speed". I have to imagine that "redneck speed" would be pretty slow, actually. I LOLed. :)

lol Depends upon the redneck, but noted anyway. Anywho I guess the more ideal pro route for linux use is probably Java due to it being popular and multi-platform, hopefully I learn it and build my skills enough to usefulness before something else takes its place as well as better my skills as a programmer. Being a useful programmer is my goal, not mastery, that will come on its own with time.

doas777
March 11th, 2011, 04:35 AM
lots of programmers don't like it, but in the business world, the difference between hobbyists and pros are topics like Systems Analysis & Design, Algorithms and Patterns, project management, business communications, and collaborative tech. I really hated systems analysis in school, but when I ended up with a project in my lap for the first time, i knew how to start getting started. its a eye-opening experience to go from knowing nothing about a group of stakeholders and their business needs, to having a full system specification, and finally to having a working system... albeit a little late. I learned a lot about time management at that job.

in the end, learning to program is different from learning a language. once you know how to program, picking up new languages is relatively easy. PHP may be a good choice since you can easily marry it with your web design background. python is a good starter because you can use it for both procedural and object-oriented code.

slavik
March 11th, 2011, 05:33 AM
So, who here is a professional developer who writes code and develops applications/systems for a living?

trent.josephsen
March 11th, 2011, 06:53 AM
One for two. My programming job is not my primary source of income.

LoneWolfJack
March 11th, 2011, 07:56 AM
So, who here is a professional developer who writes code and develops applications/systems for a living?

does being an ex-freelance programmer and now running a small software company count? ;)

as for java: DON'T pick it as your first language. it's bloated, it's clumsy and despite of tons of tutorials and documentation, it's relatively hard to learn.

I've been building java applets in the past and now came back to java for smartphone development and even though the android SDK has been comfortably merged into eclipse, it still takes WAY too much cryptic code to get results unless you rely on some middleware.

for the same reason, I would advise against perl.

PHP or python is your best bet. and if you're looking to get hired in a web programming context, nothing beats PHP.

ve4cib
March 11th, 2011, 08:26 AM
So, who here is a professional developer who writes code and develops applications/systems for a living?

I was a professional code-monkey for about a year and a half. Basically it was just a job to save up enough money after I was finished my undergrad to go back to school and do a master's (which I'm currently working on).

As a corporate code-monkey I was basically doing full-time web application development in C#/ASPX.NET with lots of Javascript for the client-side of it. There was also a little bit of VB, VBScript, and Python for oddball little contracts we got.

fct
March 11th, 2011, 01:04 PM
So, who here is a professional developer who writes code and develops applications/systems for a living?

* raises hand *

shawnhcorey
March 11th, 2011, 03:44 PM
as for java: DON'T pick it as your first language. it's bloated, it's clumsy and despite of tons of tutorials and documentation, it's relatively hard to learn.

Agree completely.


for the same reason, I would advise against perl.

PHP or python is your best bet. and if you're looking to get hired in a web programming context, nothing beats PHP.

If you're looking for web development, consider LAMP (Linux, Apache, MySQL (or any RDBMS), and Perl, Python or PHP) and Ruby on Rails.

There is nothing wrong with Perl. Initially, Perl was designed as a replacement for shell scripts, sed(1), and awk(1), so it's syntax seems a little weird if you don't have that background.

ratcheer
March 11th, 2011, 04:13 PM
So, who here is a professional developer who writes code and develops applications/systems for a living?

I used to, but I am retired now. My most recent job was as an Oracle DBA, where I also did quite a bit of programming, mostly PL/SQL. Also, a lot of Korn shell scripting on Sun Solaris, IBM AIX, and HP-UX.

I have also programmed professionally in various languages and platforms over the course of a 34-year IT career. COBOL, S/370 & S/390 assembler, Rexx, ISPF, Visual Basic, Smalltalk, C, C++, Perl and, I'm sure, several others I cannot even think of right now.

Now, I am most interested in Ruby for my retired life at home. But, something else will probably come along.

Tim

Some Penguin
March 11th, 2011, 11:12 PM
Agree completely.
If you're looking for web development, consider LAMP (Linux, Apache, MySQL (or any RDBMS), and Perl, Python or PHP) and Ruby on Rails.

"All the cool kids use Ruby". ;)

Linux, Apache httpd, and Apache Tomcat very common for server-side work.

MySQL and PostgreSQL are both free, capable and pretty widely used. I tend to prefer the latter. *shrug*

Lots of PHP devs around. Being in a group with "lots of" is a double-edged sword -- easier to work with others for large projects, more competition so you should probably have *other* skills to stand out.

I don't get paid nicely for knowing Java; I get paid for having a lot of practical experience in a particular area (designing and implementing algorithms for comparing documents and data sets and identifying likely correspondences between entities -- e.g. realizing that "SRK" means "Shah-Rukh Khan" aka "Shahrukh Khan" in certain contexts, and distinguishing between "Manmohan Singh" the actor and "Manmohan Singh" the prime minister, or whether some random reference to a John Blake might be any particular John Blake or not), combined with a fair bit of theoretical knowledge from a fairly long education.

Java, Perl, et al are merely instruments, and there's a common expectation that people should have a sufficiently deep understanding and ability to learn that picking up new and useful things (e.g. SQL and PL/pgSQL; new version control systems; anything, really) as needed should not be a significant obstacle. On the other hand, if you have no idea how to intelligently analyze a problem and come up with well-designed solution, detailed knowledge of a given language isn't nearly as useful -- badly architected solutions are failures regardless of how syntactically clever they are.


There is nothing wrong with Perl. Initially, Perl was designed as a replacement for shell scripts, sed(1), and awk(1), so it's syntax seems a little weird if you don't have that background.

Perl's convenient, but it does let you get away with a lot less structure -- I'm not inclined to think that's a good thing for a beginner who hasn't learned discipline in software architecture. But it's very useful to learn at some point for certain tasks (like parsing logfiles, where the nice regex support is useful and you may not need blazing speed).

slavik
March 11th, 2011, 11:23 PM
To break down what everyone said and summarize:

Depending on the type of applications you may want to develop/write, you will need to know a different language.

Large webapps most of the time use some kind of a Java backend (with struts/spring and hynernate). .NET languages and Perl are present as well (amazon.com uses Perl).

A lot of smaller webapps (small companies, etc) use more PHP, Python and Ruby (RoR, Django, etc)

Large end-user applications are going to be in C++.

The work I do is in a segment where everyone uses Java and runs their applications on a J2EE server (Weblogic, Jboss, WebSphere). These companies range from financial companies, to franchises, to retailers.

shawnhcorey
March 11th, 2011, 11:30 PM
Java, Perl, et al are merely instruments, and there's a common expectation that people should have a sufficiently deep understanding and ability to learn that picking up new and useful things (e.g. SQL and PL/pgSQL; new version control systems; anything, really) as needed should not be a significant obstacle. On the other hand, if you have no idea how to intelligently analyze a problem and come up with well-designed solution, detailed knowledge of a given language isn't nearly as useful -- badly architected solutions are failures regardless of how syntactically clever they are.

One of the reasons I recommend that beginners start with one of the scripting languages: Perl, Python, Ruby, or PHP. Way back when PCs first appeared, the only language available on them was BASIC. A whole generation of programmers started their careers with it. These days, the scripting languages take its place. Learning one will teach you the fundamentals of programming, and once learned, can be transfer to any other language.

cgroza
March 12th, 2011, 04:09 AM
One of the reasons I recommend that beginners start with one of the scripting languages: Perl, Python, Ruby, or PHP. Way back when PCs first appeared, the only language available on them was BASIC. A whole generation of programmers started their careers with it. These days, the scripting languages take its place. Learning one will teach you the fundamentals of programming, and once learned, can be transfer to any other language.
Poor people, BASIC gives me a cerebral trauma.
Anyway, how much does a developer gain from its job per year. Is it worth it, enough to pay you bills,taxes and put in you pocket?

kidsodateless
March 12th, 2011, 04:27 AM
if you are looking to get started, many programmers will recommend python.

+1 to that. Python is easy to learn,That is why many programmers strongly recommend it for newbie like me :D