What language should I learn?

Joined
Feb 9, 2015
Messages
13
Likes
9
Degree
0
10 years ago, I was doing SQL/PLSQL programming. I want to learn a new language. As I have been out of the field for such a long time, I wondered if anyone had any suggestions.

I thought it is always a great idea to learn something and over time I could become proficient

Thanks
 
Well if you don't know PHP/HTML/CSS/JS then these would be a good start.
 
Well if you don't know PHP/HTML/CSS/JS then these would be a good start.

This is good if you want to be a front end dev. But, that might not be your focus.

I know that most traditional coders are pushing Perl / Python.

If you're just looking to build SEO websites, you can learn psuedo code. This will allow you to accurately describe what you need from coders when you're outsourcing work to them....without actually having to know any coding language yourself.

https://en.wikipedia.org/wiki/Pseudocode

For the most part, most of of us have a working knowledge of html/css/php. Some better than others. :smile:
 
COBOL. That programming language runs a ton of financial transactions till this day, and developers for the language are rare if not scarce. Financial institutions are desperate to hire for COBOL programmers since so much of their stuff is written in it and most programmers now a days use new languages. It's an interesting lesson on what happens when the world moves towards a new standard but yet these huge companies and banks have stuck with these legacy programming languages and continue to do so 40+ years later just because... So as an "employee" knowing COBOL can get you a good living.

But on a serious note this question cannot be answered unless we know what direction you want to go in. Are you looking to create software, web software, create websites, create SAASes, or just get hired to help hardware hackers create unique gadgets. Only then can people give you a recommendation.

The question is the equivalent of stating "I know english, what other languages should I learn?" Well it'll depend on whether you are looking to travel or move to a different country, or different part of the USA, or you have a wife that speaks another language - there are a number of factors we need to know to give you better advice.
 
So as an "employee" knowing COBOL can get you a good living.

Same goes for FORTRAN and the Engineering field.

For perspective, ultimately I want to have full mastery of:
  • HTML
  • CSS
  • JS / jQuery
  • PHP
  • MySQL
Old, supported, tested, tried and true languages that will never go out of style. But I'm also only concerning myself with website building. Not a ton of scripting.
 
Thank you for your input. At this present moment it was a desire to get coding again, as I believe it to be a invaluable skill to have. There isn't a specific area I am focused in on, but the responses above certainly have given me food for though.

Many thanks!
 
But on a serious note this question cannot be answered unless we know what direction you want to go in. Are you looking to create software, web software, create websites, create SAASes, or just get hired to help hardware hackers create unique gadgets. Only then can people give you a recommendation.

If i wanted to create SAASes and web software in the future should I go for ruby/perl/python? Currently learning html+css
 
I'm learning php because I mainly work with WP for sites, plus you can still make a great saas with php (I am now and talk to people who have live sites).

Did you know Mindgeek, the people who own Brazzers, Pornhub, Redtube, YouPorn, etc. use php for their sites? Facebook also uses php for their setup. You're more than safe going in that direction.
 
If i wanted to create SAASes and web software in the future should I go for ruby/perl/python?

Whatever language you are most comfortable programming in, is the answer. I can be a horrible ruby programmer but an outstanding python developer. When it's time to code a SAAS I need as much control as possible and programming it in a language I barely know or am bad at will result in bad coding, bad functionality, and bad execution.

This is a Mac versus PC debate, it depends on your end goal and your own skillset with each language.
 
It's definitely a plus to have a language that you're comfortable with, however that can put blinders on you pretty fast. Say you're very proficient at PHP and you can do pretty much everything you need to do with it. One day, you decide you need chat functionality and you want to actually code the server yourself, cause that's just what kind of masochist you are. So you're like "well, since I'm in beast mode with PHP, I'm going to use it" and you get to coding, only to realize that PHP isn't the best choice for thing kind of thing. You could try to force PHP to work, but you're hammering nails with a screwdriver (seen this too many times to count) and deep down inside you know it.

I've actually had to do that recently. I'm comfortable in pretty much any lang but my preference is Ruby because of the highly readable syntax, the whole object oriented thing, and the fact that there is seriously TONS of support for pretty much anything you'd want to do with a webapp or Sysadmin related tasks, which is what I do as a freelancer. And Ruby on Rails performs decent with small to medium load (thousands of concurrent connections), but after that it starts to fall apart. Yes, you're hearing me say "the language I really love to use really doesn't scale well" for larger apps. With that in mind, I've shifted my focus to a language called Elixir (http://elixir-lang.org/) and a framework called Phoenix (http://www.phoenixframework.org/) that's designed for insanely fast and scalable web apps. Do I worry that if I needed to hire help that I'll find an "Elixir Developer"? Nah, I'll just go after the brightest devs I can find because I know they'll pick things up in a weekend or two and will write code of quality that can only come from a skilled dev.

One thing I do know is, I'm a pretty good programmer (not trying to be cocky, lol). I've been doing this for over 30 years, know tons of languages, and can write code that will give way more than a passing grade in just about any lang you throw at me. My circle of friends includes some pretty high profile people in the dev world. The general consensus is, a good dev knows how to write good code, despite the lang. Good error handling (not just "catch it all and do nothing), software architecture, Object Oriented vs functional design patterns, etc are not specific to any one language, they are what you learn as you become better and better as a dev, not as a "PHP developer". As such, I'm a programmer not a "Ruby/PHP/Perl/Python developer". I can take a language I've learned in a couple of weeks, and write code that would be more than acceptable to a seasoned dev in the same lang. Most good devs I know can do the same thing. You can put any one of us in a project with a lang we don't know, and a week or 2 later, you'd never know we didn't know it.

Sorry for the TL;DR. I guess what I'm saying is, if you're an experienced dev, pick what you feel is the best tool for the job and go for it. If you're just wanted to create "something that works" or you are on a deadline, it makes more sense to stick with what you're comfortable with. At the same time, if the tech you know is antiquated or just not the best tool for the job you are trying to accomplish, you'd be doing yourself and anyone that has to maintain your system a disservice not to move on to something that is headed more in the "future proof" direction. Don't just consider the cost of having to learn something new, consider the cost of prematurely having to do a re-write because you didn't want to step out of your comfort zone.
 
@SmokeTree I agree that using the best tool for the job makes sense. Knowing the limits of your programming language is key. But all that falls null and void to newbies who may think HTML and CSS are programming language (they are markup and style sheet languages, respectively). Newbies don't have multiple language skills and barely know the toolbox exists versus knowing what tool works best for what, and that comes with time and experience - which a newbie has none of just yet.

I don't think people should be coding a SAAS when they are just getting started with actual programming languages, but at the same time I never want to be the one to tell people "you should probably wait until you know XYZ for a year or two", cause that could kill drive, momentum, and ambition in what could be a crazy great project, cause you never know.

A SAAS requires you to know a lot of security and programming basics, as well as PCI compliant setups (and other compliance's within each industry), as well as being able to work with multiple languages, javascript/jquery integrated with whatever language the html output was created in, combined with database management, and horizontal scaling (at some point). But even that can be learned on the job, but rarely when starting out with programming in general as a newbie.

Within the context of this conversation there really is no "best" language to get started if you are starting out (at least without knowing the detailed end goals).
 
I don't think people should be coding a SAAS when they are just getting started with actual programming languages

I think that right there summed it up man. Creating a SAAS is kind of an "end level" thing because of the sheer amount of knowledge and discipline it requires. Not only does a dev have to be a good programmer, they also have to wear the sysadmin hat from time to time. Then they have to wear the "security expert" hat, front-end design hat, management hat, and other hats that those of us that have traveled that road know all too well. I definitely wouldn't want to tackle a SAAS if I was just starting out, for the sheer reason that it wouldn't be the responsible/right to do for my customers. I could tell you war stories of some of the worst practices I've seen, both in dev and security. In the end, there is no substitute for experience. It definitely takes a lot more than mad code skills to create a SAAS.

Ultimately, learning any lang will broaden the mind and get that "dev chi" flowing. No language is "bad" if we learn from it.
 
In an attempt to make this as clear and concise as I can, here's several questions to ask yourself:

  1. What needs do I have?
    • What am I trying to build?
    • What architectures might it require?
    • What functionality will need to be built into it?
    • Will I be programming for fun or programming for a purpose?
  2. What resources do I have access to?
    • Are you a one man show?
    • Do you have a team of programmers that specialize in their own respective areas?
    • Do you have budget to outsource components of a site/tool/platform build?
    • This will significantly determine what languages you may want to focus on
  3. What might I need to accomplish in the future?
    • If you're programming for a purpose, try to imagine how the site/tool/app/platform might scale in the future
    • What additional functionality may become necessary?
    • What can I realistically handle on my own, based on resource constraints?

Ultimately, if you're learning for fun, great. I'd say if you're just looking for the mental exercise, you might think about things you like, programming styles you like (OOP? Functional? Scripting?), and see what meshes well with that. On the opposite end, maybe you instead want to try something you don't do well, to really stretch your legs. Either way, I'd say make a list of 5-10, watch a few YT vids, browse a few StackOverflow threads, and start getting a feel for what piques your interest. Once you narrow something down, you might peruse some of the online course sites and see who has something to offer. Here's a few, in no particular order:

  • Codeacademy
  • Lynda.com
  • Coursera
  • Udacity
  • Khanacademy
  • Udemy
  • MIT OpenCourseWare
The awesome thing is, regardless of the language, you're probably going to be able to find a significant number of free or inexpensive training courses, or simply some comprehensive YouTube tutorials and video series.

As an example, recently, I was particularly enamored with the $9 I spent on an insanely-comprehensive Udemy course for the Go programming language, which was put together by a currently active programming professor at a west coast university. Very easy to follow along, and within a few minutes I got a new DigitalOcean droplet spun up, Ubuntu install configured and locked down, and a Golang server up and running with a simple test site. Next step is learning to configure a custom Go server, and beginning to get a production-worthy dev pipeline to start building static sites on Hugo, which is itself built in Go. All that without massive student loan debt. LOL FTW Udemy is to Universities as Netflix is to traditional cable TV plans I guess. :wink:
 
Back