T Nation

You Got Computer Skillllz?

What is the most-marketable/easiest-to-learn computer skill I can teach myself?

Visual Basic or java programming

How to use Quickbooks. Seriously.

Failing that, I’d never start with VB (and I disagree with using Java, but that’s a theory of looking at Java schools). Introduce yourself to what computer science is with a very high-level language like Python or Ruby (Ruby is all the rage for web programming now), then move into Java and C++.

What do you mean by easy to learn? And what kind of a time frame do you have in which to teach yourself?

Web development is probably the easiest to get into without a degree or professional experience. But even that takes a lot of leg work to become profitable.

I agree with Dweezil, though; avoid VB entirely, and learn Java after you’ve learned a language with garbage collection, like C and C++. Of course, none of that is really profitable for the first year you will be learning it.

Thinking a little more: Work for geeks on call. They will train you (or so I have heard), make decent money, and you will learn something about computer repair and troubleshooting.

Just to disagree with the masses (ok, two people), I’d go for VB.Net first off (I’m assuming the suggestion for VB was the .Net version).

.Net programmers are still in demand (at least over here) and if you combine it with ASP.Net, you can knock up a website very quickly once you get the hang of it.

It’ll give you an insight into programming to see if you really want to get into it.

Once you’re sure it’s what you want to do, figure out what kind of programming you want to do. If you want to do websites, then choose either Microsoft type stuff (.Net) or Linux (PHP). Yes, you can do both, but you’ll find it easier to learn one at a time. If you want to program games, then something like C++ (with DirectX) to give you an insight into a lower level language. Java is used for some web based games, as far as I know, Runescape is coded in Java (if the job interview was anything to go by anyway).

Since you said skill and not programming directly, learning your way around alternative operating systems (non-Microsoft) and how to administer them properly (I believe unix sysadmins are fairly well paid). Like nephorm said, learning repair and troubleshooting is always good (damn things go wrong on a daily basis).

Try getting a job in a local computer shop doing repairs and upgrades, work for free if need be, just to get used to it.

There are computer skills other than programming. It all depends on what you’re good at. If you’ re good at math, programming; art, photoshop; etc. There’s CAD systems, system administration, network engineering, security, and all sorts of other things you can learn on your own.

I think if I were to start over, I’d learn something simple like Crystal Reports and database development/administration. It’s easy, it pays well, and the work is very visible.

Yeah I’m sure those are all really good suggestions, but I wasn’t thinking IT type job. The first thing that popped into my head was definitely Microsoft Access, and obviously (I think) that necessitates really great command of Excel.

Personal Computer Salesman.

[quote]nephorm wrote:

I agree with Dweezil, though; avoid VB entirely, and learn Java after you’ve learned a language [/quote]without[quote] garbage collection, like C and C++. Of course, none of that is really profitable for the first year you will be learning it.
[/quote]

fixed that for you.

And I agree, learning the basics of computer science with a lower level language like C/C++ will make picking up other languages easier in the future. However, I wouldn’t consider programming to be an easy skill to pick up. I know plenty of guys with CS degrees from good Universities who are still shitty programmers.

[quote]m0dd3r wrote:
And I agree, learning the basics of computer science with a lower level language like C/C++ will make picking up other languages easier in the future. However, I wouldn’t consider programming to be an easy skill to pick up. I know plenty of guys with CS degrees from good Universities who are still shitty programmers.[/quote]

Which is why you should learn a higher level language first, because you’re predominately concerned with developing the ability to program competently–not understand the intricacies of computer hardware. Learning C++ first is really painful, and while there are merits to that pain there’s nothing wrong with learning a high-level language first so you don’t want to kill yourself when you start self-studying C++ (C is obviously different).

[quote]Roual wrote:
.Net programmers are still in demand (at least over here) and if you combine it with ASP.Net, you can knock up a website very quickly once you get the hang of it.

If you want to do websites, then choose either Microsoft type stuff (.Net) or Linux (PHP).[/quote]

This applies to you as well. PHP is a quirky language with a relatively (relative to other languages with good web frameworks) awkward syntax. There’s a reason why the use of Scheme (a purely functional language) and other similar languages has become highly recommended, especially by groups like ACM.

For someone with no background in computer science OR programming OR serious work in applied discrete mathematics you have to start from teaching people to tackle functional problems first. Once you’ve done that you move into object-oriented problem solving (normally using Java) and imperative problem solving (normally using C).

High-level languages allow beginning students to not worry about the intricacies of language syntax and rather start programming basic scripts and “programs” as quickly as possible. You can technically do this using PHP, but PHP teaches some skills you’ll have to unlearn, which is not what you want. PHP also has a clusterfuck of a community and documentation is all over the place.

I don’t really agree with using Java as a first language but it can be done by an instructor who is intelligent and points out that Java is not the perfect first language, and who does not immediately introduce students to OO as then they won’t fully understand and appreciate the difference between OO and anything else.

I feel like I’m writing a fucking essay on how computer science should be taught, but I’ll end by saying the best curriculum I’ve seen has normally been at small, elite liberal arts colleges. Functional (Scheme or another) -> Imperative (C optimally) -> Object-oriented + data structures (Java preferably).

I must admit, my experience with PHP is limited to a crappy university module, and some playing around with it for a few days in my own time a couple of years ago, so basically, I don’t have a lot of experience with PHP.

Dweezil, just out of curiosity, and this is purely from my own experience, why not recommend any of Microsoft’s .Net stuff? The way I see it is, like them or hate them, Microsoft IS going to be around for a long time, and I find languages like C# powerful and easy to use, so you may as well get some experience with them.

I think my programming experience went Modula-2 (think Basic), C, C++, Java.

Thinking about it, learning a non OO language first is probably easier, then progress onto OO when you have some experience, so yeah, I’d go along with your Functional -> Imperative -> Object-orientated.

Sorry - t’ain’t none of it quick, ‘less’n your just totin’ 'puters around.

perl is a language used everywhere, usually invisible. It’s not sexy, it’s not pretty but it’s great for gluing things together and things ALWAYS need gluing together.

You can start simply and make useful programs and work your way unto more complex programs/scripts as needs arise. You have to look for openings though where it can be used. Then you can graduate up to “real” languages that bring the bigger bucks.

I’m not saying it’s the BEST language, just an extremely useful and widespread one with a learning curve that matches one’s capabilities. Can stay in the shallows or go real deep with it.

[quote]beebuddy wrote:
What is the most-marketable/easiest-to-learn computer skill I can teach myself? [/quote]

People, the guy asked for computer skills NOT which programming language is most proflific or best to learn.

  • You have Web Development as a marketable skill and it’s easy enough to learn how to use a Content Management System and build website for people. This can become more complicated then you’d think depending on user requirements.

  • You have Desktop Support which I have distilled down into a 5 word mantra - “Retry, Reboot, Reinistall, Reformat, REPEAT!”
    Any monkey can do desktop support and be paid well if they follow my 5 word mantra (I own the copyright on that mantra but I’ll allow its use as along as you credit Spry.)

  • You can learn Automated Functional Testing in about 5 minutes. You only need to know a little Visual Basic Script (not even .NET proper). This pays well also and is in decent demand.

Desktop Support is your best bet for a part-time gig. Functional Testing is more suited to someone who wants to be an IT contractor full-time.

I am a performance tester / small company sys admin myself.

dummies series, if you are a beginner.

[quote]Spry wrote:

  • You have Desktop Support which I have distilled down into a 5 word mantra - “Retry, Reboot, Reinistall, Reformat, REPEAT!”
    Any monkey can do desktop support and be paid well if they follow my 5 word mantra (I own the copyright on that mantra but I’ll allow its use as along as you credit Spry.)
    [/quote]

Ah, the 5 R’s of the support technician. In the case of web support, it’s normally “Refresh, Reboot, Reinstall, Reformat, REPEAT!”.

OP, what do you hope to get out of this?

I’ll tell you this much… I am graduating in one week. My major is management, and I decided to do a minor in IT.

My IT minor consisted of:
Intro to Computer Science (algorithm design/SCHEME programming)
Intro to Software System (object oriented programming/Java)
Web Technologies and Administration (Running Apache servers, Running Tomcat servers, HTML, Perl, Python, PHP, Java/JSP)
Network Technologies and Administration (From the ground up: OSI Model -> Hardware configurations)

And then I took 2 additional courses which were focused on programming.

I also took a class called “The Computer in Business” and another called “Managing IT”.

And guess what?

I could not land an IT job. I spend all winter/most spring applying for IT related jobs.

I gave up. I started applying for business/sales/marketing/management jobs, have had 4 interviews, I got 2 NEW call backs last night, etc.

Point: Just learning a little of something will barely qualify you for any IT job.

[quote]m0dd3r wrote:
nephorm wrote:

I agree with Dweezil, though; avoid VB entirely, and learn Java after you’ve learned a language without garbage collection, like C and C++. Of course, none of that is really profitable for the first year you will be learning it.

fixed that for you.
[/quote]

That’s pretty annoying. I saw my mistake when I hit post, went back to edit it, and fixed it. But I guess it didn’t take.

[quote]Roual wrote:
Dweezil, just out of curiosity, and this is purely from my own experience, why not recommend any of Microsoft’s .Net stuff? The way I see it is, like them or hate them, Microsoft IS going to be around for a long time, and I find languages like C# powerful and easy to use, so you may as well get some experience with them.[/quote]

There’s nothing wrong with .Net stuff, you could probably learn C# as a first language. But I’m largely self-taught, and if there’s one thing I’ve realized from having conversations with developers and engineers much smarter than me it’s that for someone with no background in computer science and no fundamental understanding of mathematical logic the best way to go is to start with a very high-level language with very, very clean syntax. It not only promotes good habits, but it allows people to start writing immediately instead of working about minor intricacies.

I just think high-level (Python, Ruby are more practical, Scheme is probably good in an academic setting) -> Imperative (C is the best, because you’ll eventually want to know C) -> Object (Java is the best for introducing OO principles) is the best “pathway” to making someone a good programmer in the fastest time possible, while introducing them to languages that will actually be useful.

[quote]skidmark wrote:
Sorry - t’ain’t none of it quick, ‘less’n your just totin’ 'puters around.

perl is a language used everywhere, usually invisible. It’s not sexy, it’s not pretty but it’s great for gluing things together and things ALWAYS need gluing together.[/quote]

Perl is good to know because it’s everywhere, but I’m not sure what it does that Python doesn’t do at this point. They are both the best languages for handling strings, but Python doesn’t look like chicken scratch.

[quote]Spry wrote:

  • You have Web Development as a marketable skill and it’s easy enough to learn how to use a Content Management System and build website for people. This can become more complicated then you’d think depending on user requirements.
    [/quote]

On this topic this book: http://www.amazon.com/Learning-Web-Design-Beginners-StyleSheets/dp/0596527527/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1209059274&sr=8-1 is the best book I’ve ever seen on the subject. I was “out” of the game for a long time (using tables a lot, I had little to no experience with CSS) and this book taught me the right way to do things. I give it to anyone who says they want to learn how to develop websites and who has little experience doing it.

For the guy who didn’t get an IT job: It’s hard to get IT jobs, it’s always been hard to get IT jobs. Half of getting your first IT job is who you know, the second half is applying to school districts or governments. IT only cares about work experience, while getting basic jobs doing programming is much easier.

I taught myself basic C and C++ programming when I was in middle school. I don’t think it’s that big a deal to learn. Get the “For Dummies” books, to start.

If you want to be able to do lots of personal programming projects, something like Ruby, Perl, or PHP is helpful, because it is easier to to make quick one-offs that actually do something.