Page 5 of 5 FirstFirst ... 345
Results 41 to 47 of 47

Thread: Five programming languages to know.

  1. #41
    Join Date
    Jan 2013
    Location
    Another Dimension
    Beans
    164
    Distro
    Kubuntu 12.10 Quantal Quetzal

    Re: Five programming languages to know.

    I prefer C++ but can use C C#.

    Always swore I would never get into databases but that of course changed and am now quite proficient in MS SQL.

    I think you can guess that means I deal mainly with Microsoft technologies for my sins.

  2. #42
    Join Date
    Apr 2011
    Location
    Texas
    Beans
    75
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: Five programming languages to know.

    Quote Originally Posted by furything View Post
    I prefer C++ but can use C C#.

    Always swore I would never get into databases but that of course changed and am now quite proficient in MS SQL.

    I think you can guess that means I deal mainly with Microsoft technologies for my sins.
    I'm really disappointed in you

  3. #43
    Join Date
    Jan 2013
    Beans
    4

    Re: Five programming languages to know.

    The first 5 learned for fun:

    BASIC (I learned this in middle school. Initially so I could make the TRS-80s at my local Radio Shack hurl obscenities at passers-by).

    DOS 3.* batch files (not a bad little scripting language given the limitations of the system on which it ran)

    C, both K&R and ANSI

    C++

    Most recently Python

    The only time I ever programmed 'professionally' I ended up having to use a truly ugly combination of perl, LotusScript, VBA, and PL/SQL in order to fetch, preprocess and load financial data for publication. I was limited to stuff I didn't have to actually install on my windows box - technically I wasn't supposed to automate the process.

  4. #44
    Join Date
    Nov 2009
    Beans
    1,081

    Re: Five programming languages to know.

    Meh. Learn what you need for your purposes. You don't need to know *everything* for a category, and if you know one language for a particular purpose very well it's unlikely to be all that hard to pick up another of a similar flavor if you need to (easier integration with an existing system, better match with co-workers' skills, et al).

    e.g.

    data storage layer:
    -------------------
    good to know a one flavor of SQL (personally, I'd recommend PostgreSQL over MySQL... the latter has had more serious FUBAR bugs and is owned by a company primarily interested in profiting from a competing database)

    NoSQL stores like MongoDB might not use a new language, per se -- mostly JS-ish with bindings for other languages in the case of MongoDB.


    server layer:
    -------------
    Java's threading support and large number of relevant libraries (notably Jetty embedded web server, Jersey JAX-RS implementation, Jackson serialization, drivers for major database types, log4j logging frameworks) and features (JMX monitoring via jconsole, notably; also, good support for profiling built into VMs) has much to recommend it -- easier to build, deploy, introspect. Reflection paired with annotations, paired with sophisticated build systems like Maven, mean that you can build tools to make future development *much* easier.

    Also, in practice many programmers seem sufficiently incompetent that they permit buffer overflows or memory leaks, and it's easier to detect and prevent those in a language running on a VM than natively. The more the contributors there are to a code base, the more likely it is that one will be rather careless or unskilled. A single C coder whose code occasionally writes user input to the wrong memory address can cause headaches for everyone, so the larger the team size and the less rigorously they and their code are vetted... well, have fun.


    web front end
    --------------
    HTML, CSS, JavaScript, PHP; chances are whatever you're working on will benefit from these. Libraries like jQuery make things like exchanging JSON-packaged data with servers much easier. Pythonians probably want to look at Django.


    desktop app programs
    --------------------
    C and C++ has much to recommend themselves due to years of libraries being built for this sort of thing, esp. UI code, and the ability to build a useful binary that doesn't require a VM shipped with it. Plus -- well, crash, blame the user for misconfiguration, crash, patch, crash, blame hardware, crash, blame the user's security software, crash, blame drivers, crash, abandon until the next paid upgrade, et al. It's much more tolerated and expected that an app crash or otherwise behave badly and often, versus e.g. a major e-commerce site having an unexpected day-long outage every three months or so.


    mobile apps
    ------------
    For iOS, it's pretty much Objective C if you want to do it natively (and you probably should, to make things actually snazzy and take full advantage).

    For Android, the Android API is Java-like.


    scripting
    ---------
    Python and Perl; I prefer Perl, both for the massive utility of CPAN and what I find to be its generally more pragmatic and flexible approach.

    Yes, you could become an expert on zsh, but there's less call for it these days unless you're working on a tiny embedded system that has no hope of running an interpreter for a more capable language.

  5. #45
    Join Date
    Nov 2005
    Location
    Sendai, Japan
    Beans
    11,296
    Distro
    Kubuntu

    Re: Five programming languages to know.

    Quote Originally Posted by 1clue View Post
    And then, maybe second semester, you should get some software design theory, especially the use of ubiquitous language instead of prolific but nonfunctional comments.
    Goodness, no. I am fortunate enough to never have taken a course in "software design" or "software engineering" or any crap like that, and I am very glad I didn't when I look at what people do in these classes.
    「明後日の夕方には帰ってるからね。」


  6. #46
    Join Date
    Feb 2009
    Beans
    1,469

    Re: Five programming languages to know.

    All right, so here's a slightly more specific interpretation of the question: What is your job, and which languages should I learn in order to excel in that field?

    For instance (as I already mentioned), I'm an electronic engineer, and although I don't have all that much experience, I'd probably say C, an assembly language for whatever platform you work on most often, and VHDL or Verilog. There are other higher-level languages that appear from time to time, but those really vary too much to say that you "should" learn any particular one. C on the other hand is more or less a lingua franca.

    Alternatively, perhaps which languages should I learn in order to have a sound basis in a variety of programming paradigms? Now there's an interesting question, one I don't feel at all qualified to answer.

  7. #47
    Join Date
    Sep 2009
    Beans
    217

    Re: Five programming languages to know.

    Those are some nice questions (should almost pull them out and sticky them... since they're asked so much)
    Quote Originally Posted by trent.josephsen View Post
    All right, so here's a slightly more specific interpretation of the question: What is your job, and which languages should I learn in order to excel in that field?
    So I went to school for CS... with a bit of CE on the side (I could have included Verilog or VHDL in my earlier list... but didn't since I never use them, which is because I'm not an engineer (even if I occasionally fancy being one.) In other words, I'm a programmer.

    At the very least, you should learn a couple popular languages (and learn them well.) If there's anything you should avoid as a programmer it's being content with knowing just 1 language (it's fine to just use 1 language usually though.) It's important to be aware that the field changes all the time and to be prepared for it.

    Quote Originally Posted by trent.josephsen View Post
    Alternatively, perhaps which languages should I learn in order to have a sound basis in a variety of programming paradigms? Now there's an interesting question, one I don't feel at all qualified to answer.
    Happily, I'm none so humble as to not feel like I am qualified to answer. Though this is a very extensive list (and I admit to not having followed it.)

    1. an assembly language (any will do, but RISC assemblies are easier)
    2. C (portable yet low level, has lots of libraries, understood by all higher level languages, and there's a ton of software written in it [including OSes]; until something better comes along C is going to remain an important language to know)
    3. Smalltalk (Objects at their best; I still haven't gotten around to learning it... but that's due to my personal preferences)
    4. pick a lisp: Scheme, Common Lisp, Clojure, etc. (while excellent tools for functional programming they double as being an introduction to data and code isomorphism, as well as an introduction to macros)
    5. Eiffel (Design by Contract, can be skipped if you go the ML/Haskell route below)
    6. One of the ML or Haskell based languages (Haskell for pure functional, but the main reason for these languages is an introduction to complex type systems and some of the cool things you can do with those: such as design by contract)
    7. Erlang (concurrency, Go would be an acceptable substitue)
    8. AspectJ (Aspect oriented programming, requires you to learn Java first)
    9. Prolog (logic programming)
    10. One or all of: Perl, Python, Ruby, or a Shell (not really paradigm shifting, but there is something about each that isn't captured by any of the above)

Page 5 of 5 FirstFirst ... 345

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •