Get some programming skills

Sort:
VLaurenT

Hi,

I'd like to develop some programming skills as a freelancer.

Could you tell me which sub-skills/languages are most sought after these days, and which online resources are useful to self study ?

Thanks for your help Smile

chrka

Well, it depends on what kind of things you want to do and what previous experience you have. If you can be a bit more specific, I could probably dig up some useful information.

Anyway, there is a lot of useful stuff on Coursera.org and Udacity (as well as edx). They cover a lot of things that are popular these days.

Da-Waaagh

The first question is 'What do you want to program?' There's a world of difference between programming games and programming databases. And neither is similar to web-based programming.

ozzie_c_cobblepot

In my line of work it's Java. You can't go wrong with any of the basic tutorials. After that, if you're headed into mobile, I'd go Android, which is Java-based anyways.

ErictheRed78

Java's getting a little old, but it's still very relevant for web-based and mobile applications.  

Something to keep an eye on is Golang, or just Go, which was developed by Google.  I'd probably learn some Java to start but keep your eye out for the Next Big Thing, which should coalesce in the next few years.

On the other hand, I program embedded systems, so I'm not as knowledgeable about the pure software side of things.

adamplenty

I'm sort of a freelancer when it comes to programming; I don't program that often as I don't think there's anything I can write that hasn't been done millions of times before. I've used Visual Basic, Javascript (not to be confused with Java, which I've never used), Delphi (Object Pascal language), and assembly language (yes, assembly language Smile. Most people probably think assembly is impossible and/or worthless, but I disagree. But then again, maybe I'm biased because I'm autistic; that may give me an advantage over others when it comes to understanding computers) Though I've only used assembly inline in Delphi programs; I doubt many people write entire programs in assembly any more.

rtr1129

You can check elance or odesk and see what is in demand.

Da-Waaagh

There you go, Laurent!

 

    I can't imagine that little lot was any help to you whatsoever! :-)

PrivatePyle99

I worked at a pure Microsoft company so did the .net, c# stuff, but java and/or php would be my recommendations to start if your new to programming. Once you learn the concepts and logic, picking up new languages is pretty easy.

sapientdust

hicetnunc, do you already have some programming experience? What do you mean by 'freelancer'? Are you seeking to program professionally?

I personally think Python is the best general-purpose language, because it's a clean, well-designed language that you can use for lots of different kinds of programming (scientific computing, web apps, desktop apps, and many more), and there is a large community of users, open-source libraries and applications, and learning resources. See python.org and the getting started page for more info, and here's an article on why Python is a great first first language.

VLaurenT

Thanks everybody for your help. I'm toying with the idea to add some programming skills to my bow, and while I hope I can use them professionally, the idea is more to sell/offer some extras to clients I work with, rather than make it my daily job.

Last time I looked at it, Java was all the rage, but it's good to know things have evolved, so I now have a clearer idea what deserves further exploration Smile

nartreb

I'm having a hard time imagining an industry where you can do programming as an "extra."    Your clients will want the job done right, they will want it done quickly, they won't want a total beginner mucking it up.  Remember, writing the program is the easy part.  There's a whole discipline of testing, security, managing updates, and so on that take up most of the time and add most of the value, that most programmers need years to learn.  

 What you may be able to do is apply programming skills to solve problems that occur to you repeatedly in your job.  Say, you always need to open spreadsheet X, get row Y, and paste it into report Z.  If you have some basic programming skills, you can write a program to do that faster and more reliably. You'll provide your clients with better service and still charge the same without working as hard.

 The best language to use is the one that makes your particular job easiest.  In the absence of any info about what kinds of problems you or your clients are trying to solve, though, I second the recommendation of Python as a great all-purpose language and a good choice for learning. 

To respond to your original question, "most sought after" really doesn't matter.  Different niches need different skills, and anyway what's sought after today probably won't be so sorely needed by the time you gain enough experience to be marketable.     If you want to jump on the cutting edge, you could try to learn Haskell - but you may have trouble finding anybody who *uses* Haskell in their business.  If you want to always have work, no matter how un-cool, learn COBOL or FORTRAN - the guys who know this stuff are retiring, but there are still millions of lines of code in use.   Java or C++ are slipping toward uncoolness, but they've got a lot of life left.  (Don't try learning C++ as your first language, though.  It's nasty.)  Python  is no longer new, but still gaining ground.   Ruby is growing too.  And it never hurts to know a little HTML and related standards (CSS, javascript, the list never ends).  But don't worry too much, once you learn one language the next one is easier.

mottsauce

I think Python is the easiest to pick up, but Java isn't super difficult.

C/C++ is used for a lot of embedded devices (phones, GPS, etc), and as someone else said, they are quite difficult to learn.

Python has an excellent tutorial, which can be found here: https://docs.python.org/2/tutorial/

adamplenty

I think everyone should ditch all these high level languages and write everything in machine code Smile. There are no limits then Wink.

sapientdust
adamplenty wrote:

I think everyone should ditch all these high level languages and write everything in machine code . There are no limits then .

You should design the instruction set architecture and microarchitecture for a chip first and then get it fabricated if you want to do things from first principles. Surely that would mean even fewer limits, if that's the important thing.

For extra credit, eschew boolean logic and invent your own non-standard logic first.

Chessmo

Hi Laurent,

Here is a good link that lists some places to start with programming. Good luck and be careful. I've known many people who switched careers after learning to program. It can be very enticing! Smile

https://medium.com/founder-insights/heres-everything-non-techs-need-to-get-a-taste-of-coding-and-its-fun-d08cc78145e8

BTW, I see from your profile page that you are a management consultant. I would consider starting out learning to program spreadsheets and databases in either Google Docs or Microsoft Office, whichever you think it more relevant to your existing clientbase. You can do a lot of practical work in these environments and they have much less of a learning curve than learning to be a full-fledged software engineer, which is a not a trivial career switch. 

motarlan

Well, the language is almost never important. One cannot keep up with the hundreds of programming languages out there. What is important is to understand how to break a problem into small pieces, how to write functions solving each piece, how to test each function, and how to combine the pieces together.

Take any CS1 course offered by a big university and follow it. CS1 means intro to programming, first "real" computer science course.

Rickett2222

The question was asked earlier and o be able to help you I really would like to know what you want to develop.

I do have a friend of mine who was believe it or not hires has a cleaner in Dominion textile and one day the boss asked about a year after he was working for aa solution to a very special programming scheme. 

He was cleaning the floor and listened in on the conversation. Two weeks laater he submitted a program in Cobol that the boss was simply overwhelmed with. 

He became the no 1 and actually had the boss job in 5 years.

He is also very familiar with other different types of programming.

So if you can tell us what it is that you are looking for I and I am sure many others would likely be able to help.

kamekura

I am an experienced programmer and a beginner chess player. How about this: I coach you on programming and you coach me on chess? Not teaching from scratch, just code reviews and tips, and game analysis.

1tannguyen

This is a great post, I am going back to school and had similar questions. Thank you for the good read!  I keep reading old posts and keep seeing you everywhere hicetnunc .