Need some dev/tech advice


It just hit me this weekend: I am going to survive. My new job pays a, barely, livable wage. And for all those firms who chose younger folks over me, I gloat! In the training for my new job, there were plenty of younger people. They were sharp, they caught on fast, some had experience already and all were educated. But it turns out having a stable lifestyle and just showing up on time, alert and ready to work everyday, is still a valuable commodity. That reliability and my past experience vaulted me from confused and frightened on day one to natural class leader who devoured the material faster than it could be delivered by day ten. By the time it was over I was practically the substitute instructor. Remember this: there is great value in maturity and experience. That gives you a natural advantage, don’t let anyone convince you otherwise!

The labor market is also improving. One recruiter and an HR lady from jobs I was turned down for earlier this year have called me in the past few weeks asking me to re-interview. I politely told them, hell no, it’s too bad the young people you hired instead of me burned out, disappeared, quit, got sick, or partied too hard and missed too many days in the first few months, but you had your chance. I was standing right in your office, I-9 documents and resume in hand, desperate for a job, willing to work for peanuts and crumbs — I would have showed up an hour early and stayed an hour late on my own dime just to get up to speed — and you guys all fucking blew it.

But my ultimate goal is to make at least a measly ~60k, preferably more, and have an actual semblance of middle class life. A goal so low I might have laughed at it a decade or two ago. But anyway, the recession … another story. To succeed in the local tech market here in Austin, I know mastering network level stuff is important. Powershell and Active Directory are a decent start, besides, that’s part of my new job. I get paid to do learn and use them. The other thing people have told me, if the goal is to be well rounded, is to pick up the basics of at least one, modern programming language. The language I’m considering is Python. Is that as good a choice as any? The first step in the online Python course is to download Notepad++, located here. Any downsides to this?

Comments

  1. says

    Python is a fine language to learn programming. It’s pretty easy to learn, easy to set up, and there is a lot of documentation for it online. I use it quite a bit for small scripting tasks, such as data processing, so it also has its practical applications too. So yeah, if you’re looking to get a feel for programming, Python is an excellent choice.

    The downside to Python is that while it’s popular for certain applications, it’s not that commonly used in enterprise software or web development. For that you may want to look at C# or Java (enterprise) or ASP.NET/PHP (web), but they’ll have a bit steeper learning curve.

    As for Notepad++, it’s currently my favorite source code editor on Windows, and I use it to write all my Python code, so I recommend you to download it.

  2. thompjs says

    +1 with Deen’s comment. Java requires a lot of setup and configuration. You might find some use for Python in your new job fairly quickly. There are dev shops that use Python for server side web apps.

  3. Reginald Selkirk says

    Python is very popular in scientific computing circles. Lots of libraries and additional packages available. Python is also popular with hobbyist platforms like the Raspberry Pi. That may not be relevant for you.

    I don’t see any downsides to learning a new language. You might say there is the “opportunity cost” of not having learned something else instead, but once you learn a couple of languages, it is easier to pick up additional ones.

    Web Development/Choosing the right programming language

  4. ___ ___ says

    The choice of language depends on what kind of program that is to be developed. See Deen’s commend.
    As IDE I recommend “PyCharm”, once commercial it is now free of charge! and far superior to anything I ever tried (emacs/notepad++/eclipse/etc).

  5. sqlrob says

    Just remember to set Notepad++ to the same tab/space configuration as whomever wrote the code you’re writing. That’s bitten me before.

    The language you want to learn really depends on what you want to do with it. Python isn’t going to help you with mobile (Objective-C and Java there), but as a first language it’s going to be fine(*). As others have mentioned, once you start picking languages up, learning them is a matter of details, broad brushes are often the same.

    You’re learning some .Net with the PowerShell, which is good. Learning some dialect of SQL might not be a bad idea. Just work your way through the python first, too much at once is just going to burn you out.

    (*) As fine as any language that’s white space significant beyond presence/absence of whitespace. I hate those with the passion of a thousand burning suns.

  6. says

    While I agree that python is an excellent first language (it was mine), I found that after learning the most basic concepts of programming, picking up Java was far more useful in learning how to program. Something about python’s simplicity made it easy to miss certain subtle elements of programming (to me, at least).

    But, like others have said, the choice of language is not that important (although, I wouldn’t start with a functional language, e.g. haskell). Learning the underlying, fundamental concepts is key. Once you’ve got that, you can switch between languages relatively easy by learning their specific syntax, quirks, and other details.

  7. Dunc says

    As the others have said, it really depends on what you want to do with it and where you want to go…

    I would like to second sqlrob suggestion of learning some SQL – although probably not at the same time as learning a procedural programming language. SQL’s quite a different beast, but it has the great advantage that virtually all serious applications (i.e. those that involve people paying you proper money) involve at least some database interaction, and virtually all databases implement some form of SQL (or its conceptually-similar multidimensional cousin, MDX). To be good at it requires rather different thinking than procedural programming, but it’s an incredibly powerful weapon to have in your armoury.

    Personally, I’m a big fan of C#, but then I’m an MS developer. What can I say? I like getting paid.

  8. says

    Also agreed re: some SQL. You don’t need to be an SQL guru but knowing the basics is pretty important if you want to write apps that are more than simple utilities. If you’re going to need persistent data you’re going to need SQL.

  9. marcus says

    As oft said, “Experience and treachery will beat out youth and energy every time. (Except when it doesn’t. :)

  10. Nentuaby says

    Your best bet here depends on which career fork you’re hoping to take. It sounds like you want your programming to enable you in more advanced IT work? Then yes, Python is a perfect choice-flexible, widely available, and easy to write. It’s very commonly used for that purpose.

    If you’re looking to bootstrap through IT into software development, it’s still a good learning language, but not the most commercial language. Ruby is a similar language in terms of ease and flexibility, with a lot of open positions due to the tensions of Ruby on Rails for server development. you could start there or move on from Python. Java is the perennial commercial frontrunner, so it’s always good to know, but I wouldn’t recommend picking it first; learn basics on a less persnickety language and then pick it up.

  11. Mike Morris says

    Notepad++ is invaluable (to me) for all of the languages I have used. As stated above, for Python, configurable tab spacing cannot be stressed too highly.

    SQL is good for all around DB access but cumbersome if you are not doing a fair amount of it.

    Can the existing code base / IT folks give you a hint as to what they have used in the past and what you might need to know to debug that existing code base? For instance, if they use a lot of PHP, it might make sense to learn that first.

  12. Sunday Afternoon says

    I started working with python a little over a year ago and would recommend it.

    Coming from languages where line terminators are required and loops need to be enclosed the syntax is extremely spartan. But I do like working with python, especially working properly with classes. A lot of my current programming is still with Visual Basic 6 or Visual Basic for Applications for historical reasons. While classes are possible, the overhead is sometimes too much work for the benefit. Python and other similar languages make it much easier.

    My 2 reasons for learning python are:

    First, python is spreading in my daytime work (displacing VB6 little by little) – the python(x,y) distribution is something of a replacement for expensive Matlab. Our main test equipment can now be controlled from python and the scientific/numerical capabilities in python(x,y) can build sophisticated analysis into our testing in real-time – very nice!

    Second, for my side project I want to rewrite my php/MySQL based web-application in a framework to take advantage of the knowledge of the authors of the framework (security, scaleability, etc.). I came across django and of the several frameworks I have considered, this one appealed to me the most. django is written in python = a nice confluence of work and side projects!

  13. Who Cares says

    Don’t know what you need to know the languages for but the dirty little secret of programming is that coding isn’t the hard part, it is everything else around it that differentiates if someone is a capable programmer or not. Once you know a language or two it get really easy to learn more.

    Look around if you can get Visual Studio or the Delphi XE6, both IDEs have multiple languages in the package.

    Next is based on my experience., as people can see it is more compile time then interpreted.
    Scientific: FORTRAN, C, C++, SQL
    Business: COBOL, C, C++, SQL
    Userinterface: Basic, Delphi, C#
    Web: PHP, SQL
    Phones/tablets: Java/ Dalvik, ObjectiveC (needs a mac as well if you plan on going iPhone).

    Now for the hard part. Learn to document. If you don’t you’ll have an easier time to read cuneiform then the code you wrote 6 months ago.

  14. Sunday Afternoon says

    Seconding “Who Cares” final point x1000.

    Even if you think it is obvious when you write the code, document carefully. You will forget what is so clear in the moment as you will not be thinking in the same manner when you come back to your code in a few months.

    I often adapt pieces of code from examples found online – in these cases I’ll place a link to where I found the original code in my comments which helps prompt my memory of how I was thinking when I return to the code.

  15. says

    Thanks tons gals and guys. I think I’ll at least check out the first few Python modules. I doubt I’ll ever be a full blown programmer like many of you. That is a self contained, formidable profession. But I think it’s good to be able to at least speak some of the same jargon and think in some of the same logic. The last programming class I took was Fortran. ANSI-76, I think. I made an A in it, but it was quite some time ago.

  16. Rasmus says

    If you haven’t already you should probably brush up on your basic CS101 stuff as well in one way or another. It will save you a ton of time and effort in the long by not spending whole weekends reinventing the wheel.

    You’ll still spend whole weekends trying to figure out how the &%¤# the &%#%¤ wheel is suppose to fit together…

  17. magistramarla says

    I know very little about computers, but the hubby is currently writing his dissertation in computer science.
    The first thing that he had to do when he was working on his coursework was to learn Python.
    Now, he’s using it to write the programs for his research that he’s constantly fiddling with.

Leave a Reply