Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Rediscovering Your Inner Code Geek? 58

tachijuan asks: "I'm an old time hand in the PC world (started with trash-80 in late 70's). Along the way I've gone from the geek in school with the only computer to a CS degree to a position as a senior systems administrator at a major university to industry. And that's where I went to the dark side and became not a geek. About 10 years ago, the corporate rat race caught me and now I'm an exec at a midsize company. After 10 years of no code, it seems like I've never worked on anything serious (still do Perl, PHP, shell, etc scripting at home). Now, I feel the need to change this. How does an old UNIX coder/SysAdmin turned professional corporate cog get back into coding? I've looked at all sorts of languages (C#, C++, Delphi, VB(eh gads), Squeak, IO, etc.) but my problem is that I have unlearned most of the S in CS and the learning curve for the API's to both UNIX and Windows has become...daunting. Short of going back to school, what would you soon to be fellow geeks recommend as a good kick start?"
This discussion has been archived. No new comments can be posted.

Rediscovering Your Inner Code Geek?

Comments Filter:
  • by Anonymous Coward on Thursday April 01, 2004 @05:25AM (#8734947)
    Check these out:

    http://www.scs.carleton.ca/~lanthier/teaching/CO MP 1405/Notes/

    If you seriouly take the time to try and understand the examples, you'll be back in no time.
  • "the learning curve for the API's to both UNIX and Windows has become...daunting. Short of going back to school, what would you soon to be fellow geeks recommend as a good kick start?"

    It is a daunting task, but I dont see a way around it. So my advice is to just start learning, and after a while it will get easyer I guess.
    Good luck anyway :)

    • Re:Just do it :) (Score:4, Insightful)

      by 0x0d0a ( 568518 ) on Thursday April 01, 2004 @05:57AM (#8735041) Journal
      "the learning curve for the API's to both UNIX and Windows has become...daunting. Short of going back to school, what would you soon to be fellow geeks recommend as a good kick start?"

      *I* want to know how much UNIX C APIs have changed since the 70s. It can't be *that* much.
      • Re:Just do it :) (Score:3, Insightful)

        by Cthefuture ( 665326 )
        This was exactly my thought.

        None of the API's are any more daunting than they were back then. Makes me think this person wasn't really ever a serious programmer. At least not one that spent very much time programming the standard stuff. They mentioned system administrator. Sounds like it has been more than 10 years. My guess is that they never did more than diddle around with the computer. Small-time programming.

        So what's so daunting? Java and .NET are big but they provide all sorts of functionalit
        • Re:Just do it :) (Score:4, Insightful)

          by smallfries ( 601545 ) on Thursday April 01, 2004 @07:48AM (#8735296) Homepage
          This is similar to what I thought when I read the tag at the top. How can it be daunting? Surely if he wants to become a geek then the *key* part is the challenge, if there were no challenge then it wouldn't be geeking. Geeks thrive on doing the hard stuff because they can. Maybe he's just a wannabe poser... As for something to get started on, well, like the parent says the API's are complicated just big. Pick something that you want to do, and do it. Yes it'll be a bit hard to get started but that is the point, and if you really do want the challenge then you'll enjoy it
    • I've had similar thoughts, about this also ; being the reason why I havent done a lot of C coding under linux other that play about with SDL. There are so many API's and Toolkits for various things where does one start and which ones are the best to ensure portability etc

      • Re:Just do it :) (Score:3, Insightful)

        by PhuckH34D ( 743521 )
        The best thing to do then is, IMO, to chose a project, and just start. You can learn all the relevant things on the way. And after that project is finished, you can start on a new one...
        One thing that I've learnt as a programmer is that you don't need to know all the API's that exist, but just start on a project, and learn whatever you must for that project, and after that just move on.

  • There are so many websites out there today that have free coding vaults for Visual Basic, as well as many other programming languages... if you really wanted to get back into the swing of programming, just start reading source code again, consider going to the library or a book store and pick up one of those "Weekend Crash Course" Books. I picked up CGI... and it really helped me.
    • Well, there is not much right with it either. I know it is 'good enough' for a lot of projects but in this context I really wouldn't recommend that this chap uses VB6 (or even VB.Net).

      VB6 is an elegance free zone - C, (not C++), Java, Python, even Perl, PostScript (!), C#, Lisp, Scheme, Prolog. Jeez, just not VB6 and preferably not from a 'learn to build apps in 21 days' book.

      Of course, not that I'm bitter about VB6.

  • Easy... (Score:5, Funny)

    by rasteri ( 634956 ) on Thursday April 01, 2004 @05:34AM (#8734978) Journal
    Just screw up really bad. They'll have you writing code again in a week...
  • Obligatory (Score:5, Funny)

    by wan-fu ( 746576 ) on Thursday April 01, 2004 @05:35AM (#8734982)
    It should be pretty easy to get back into the business of coding. Will you want your ticket for New Delhi or Calcutta?
  • Get a hobby (Score:5, Insightful)

    by bscott ( 460706 ) on Thursday April 01, 2004 @05:37AM (#8734986)
    Treat this like a project; get yourself a Killer App for the task.

    Find something that you just WANT to do - or something worth doing, for example a charity or community group - and let that force you to learn what you need to learn.

    You initially got into this computer thing 'cos it seemed cool and fun; and at the time, it was. Now you're trying to get back into it but without quite the same motivation. You want it to be fun and easy like it was the first time? Well, you've learned a thing or two since then, so use those life-skills...

    I bet you don't even have to leave your chair to recognize something, or someone, in your life that needs Fixing. To the extent that there's a technological solution to the problem, let yourself find and implement the answer. If you get it right, you can probably sell the idea too.
    • This would also be my advice, although the original post didn't say whether they desired to get back into coding as a hobby/interest or for a career move. If the latter, pick a tool set from one of the major major players (IBM, HP, M$, Oracle, BEA) and learn it. It seems to matter less these days what language you use, but toolset skills are highly marketable. Learning the toolset will also give you exposure to a language (Java in the case of IBM; VB for M$). With your experience in the non-coding part of t
  • by Nice2Cats ( 557310 ) on Thursday April 01, 2004 @05:44AM (#8735000)
    If there is ever a language that you can get up and running with quickly, it is Python [python.org]. Runs on any platform, has a great library, and what is more, if you have to take a month off from your code, you can still figure out what you were doing.
    • Python Resources (Score:5, Informative)

      by Anonymous Coward on Thursday April 01, 2004 @06:35AM (#8735123)
      Python is an ideal language for hacking in - I completely agree with your points about it being easy to pick up - and easy to pick up your own code again after a month or two away from it. Here's a handy list that I have prepared for whenever somebody mentions Python in a context like this one:

      Python Resources

      This is a list of what I consider to be the most useful Python packages. They give Python the ability to tackle almost any project.

      Core packages
      • Python [python.org] - Get the Python interpreter, base libraries from here. The default install includes the IDLE editor.
      • Win32All [python.net] - Windows extensions package that includes the excellent Pythonwin editor.
      GUI building
      • wxPython [wxpython.org] - Wrapper to the cross-platform wxWindows window manager library. It's a better windowing system than the TCL/TK library that is the default Python install.
      • Boa Constructor [sourceforge.net] - GUI builder that uses the wxWindows library.
      Performance / Distribution
      • Psyco [sourceforge.net] - x86 runtime compiler. Transparently improves the performance of most Python code - for performance-critical apps, it's often a much better solution than a C rewrite.
      • Py2Exe [python.net] - Builds Python scripts into Windows executables. Perfect for distributing programs to systems that do not have Python installed. Use with Psyco for the best effect.
      Graphics Database
      • PostGreSQL [postgresql.org] - Full-function SQL database. More complete and advanced than MySQL.
      • PyGreSQL [pygresql.org] - Python bindings for the PostGreSQL database.
      Web applications

      Python includes a full suite of functionality to build internet applications in the core install, but the following are frameworks for building and deploying web applications.
      • Plone [plone.org] - Web applications, built on top of the Zope [zope.org] framework.
    • Or try an even better language that's similar to python, but with more features, similar but non-anal (tabs required) syntax, and you won't see __'s everywhere.
  • by heldlikesound ( 132717 ) on Thursday April 01, 2004 @05:49AM (#8735017) Homepage
    Find a project written in a language you are interested in, join the mailing list, etc and learn the ropes... Then, when the need for a new method in class or something arises, rise to the challenge!

    Also, not sure if this was a requirement back in the day, but you need to be eating a least one full 14" pizza a day and drinking a 2-liter of Coke each night...
  • by Xenna ( 37238 ) on Thursday April 01, 2004 @05:51AM (#8735022)
    I recently finished a pair of GUI apps [sourceforge.net] written in Perl with the wxPerl toolkit [sourceforge.net].

    The wxWidgets [wxwidgets.org] stuff is pretty cool IMHO. It allows you to build cross platform GUI applications in many languages (Perl, Python, C++, Ruby, etc.). I personally didn't find the learning curve too steep. I already knew Perl pretty well which made it a lot easier.

    When you're comfortable with wxPerl you could switch to C++ or something if you wanted/needed to without having to learn a new GUI framework.

    X.
  • I've just installed a project from sourceforge that solved a problem I had. But I find it doesn't do stuff I want it to do. I can't run particular useful queries against the data in the DB (via the standard GUI). I can't use my own custom stylesheets, etc. I'm not knocking the project because it's a clever bit of kit. But I have ideas of stuff I'd like to add to it. So I'm going to do some work to include my ideas and offer them back to the project. Even if they aren't interested I'm still coding som
  • by ncostigan ( 127923 ) * on Thursday April 01, 2004 @07:04AM (#8735189) Homepage
    i was in the same position as you. not 10 years. but enough. found i was programming powerpoint and excel to lay off people. so i found a willing professor, picked an MSc. thesis and jumped ship. Initially it was a surprise to realise what happened when i wasn't looking.
    i found java (and now .net) amazing. its different than before. you don't learn all these APIs etc. you just think what you can or need to do and find the API. you learn where to look rather than learn them all.
    the best part of the return to school was teaching young students stuff. it makes you learn it first. so one way if you can't afford the pay cut. is to find a night course (with sylabus) to teach. you learn and get the added buzz of teaching. best of luck with whatever you decide. /nc
  • Since you have coded in the past, I believe you will still have the rationale and thought process required to code. But is there a compulsion about learning only the OS APIs?

    Admittedly, the learning curve for these is rather steep, and something most developers tackler either in uni or during the early days. However, there is also a great number of developers who don't really meddle with specifics under the hood - application programmers for example. Such programmers form a large percentage of overall p
  • by jjshoe ( 410772 )
    I beleive it was on /. where i had read this..

    Computer Science

    Science is to Computers as Hydrofluiddynamics is to plumbing
  • Why work with API's (Score:3, Interesting)

    by Y Ddraig Goch ( 596795 ) on Thursday April 01, 2004 @08:16AM (#8735370)
    You mentioned that you checked out Delphi. I've been a reformed C/C++ programmer now for 5 years. I'll not go back if I can help it. Delphi 7/Kylix (shameless plug for Borland) is a cross platform OOP language. The best thing about Delphi is that it is a component based environment. Now, having said that , the tools are there to do all the bit-twiddling that you desire. Borland has taken great pains to seperate the developer from the api's of the target OS. A form for a Windows target behaves almost the same a form for Linux. The database components behave the same way (mostly) no matter the db server. There are a plethora of opensource components (check out project Jedi at SourceForge), if you buy the professional version or higher you also get the source code to the components you are using. This is just my 2 cents but having coded in everything from COBOL to FORTRAN, and dBase to C/C++ Delphi has the shortest learning curve, the largest library, a fantastic IDE and the most bang for your Buck. Good Luck.
  • 1. Get a Safari subscription from O'Reilly.
    2. Spend an hour a day hanging out on Perlmonks.org or some similar place.
    3. Find your niche. By this I mean figure out what software currently does
    not exist or is inferior that you would use constantly, and then either
    join or start a project to write the app.
  • by north.coaster ( 136450 ) on Thursday April 01, 2004 @08:49AM (#8735487) Homepage

    You may find the responses [slashdot.org] that I received to be helpful. After some more soul searching I decided not to return to coding, but the advice was applicable beyond returning to pure software development.

    /Don

  • Find your passion (Score:3, Insightful)

    by justanyone ( 308934 ) on Thursday April 01, 2004 @09:02AM (#8735524) Homepage Journal
    As a middle aged engineer that is still coding (I'm 37), I find it a continuing battle to remain technical. It is easier to resist after this much practice, but the temptation to move to management is always there.

    HP had this trouble; IBM did too. Their products were failing and their people unsatisfied because the only path to advancement from a coding geek was to managing coding geeks. They formed a career path for engineers. The elite of this group are called 'fellows' that can do what they want. Everybody's happy.

    Managment inevitably comprises meetings, reports, schedules, documentation, coordination, and personnel management. This usually swamps anyone doing it just for the technical architect roles it provides. I've thought, "Hey, Power! I could make the major decisions for my team and we could design things right for a change!"

    If your passion is in the arts of engineering design - making tradeoffs between size / cost / complexity / reliability / beauty / functionality - you have learned something about yourself. If you mostly like meeting with people and making decisions, that's fine too.

    It sounds like you want to get more technical again. Great. If you have any technical oversight role, go to the design team and start talking and (more importantly) start listening to what they actually do. Look at the code. Ask lots of questions. Reduce the complexity from the mind-numbing to the, "Yah, I can see that.".

    If you cannot do this at your current position, you always find a position that lets you do that, and let them train you. Or, you cna get a masters in computer science, starting with night classes so you don't have to give up your day job (something online, maybe).

    The other, possibly best option in my book, is to find a subject you're interested in deeply that has an open-source project associated with it, start building it, look around, and use your talents for engineering and management together to help the project out. If you know how to create docs, do. If you know how to created lists of features that are organized well, do. If you know how to code in that language, or want to learn, pick a small feature you'd like to see, and do it, submit the code. Importantly: DON'T GET DISCOURAGED IF YOUR CODE SUCKES TO BEGIN WITH. It probably will. The project may not accept your code, but that's fine. Think about why it worked, or didn't, and do it again.

    Most important is to find your PASSION. What excites you? Learn about it. If you know lots of things and want to share, try contributing to Wikipedia.org, or Wikibooks.org, etc. If you love teaching one on one, there's lots of volunteer organizations you can try it with, but beware that it can have lots of tedium, too.

    Like the weather, everyplace has just about the same amount of suckiness. The trick is to find which place lets you do the things you most like to do regardless of the technical, management, and emotional overhead costs ('weather').
  • www.awaretek.com/plf.html
  • If you're into low level stuff, then here are 2 perfectly good projects that will last you a while :)

    1. Write an OS

    2. Write a Compiler

    To the OSS zealots, I recognize that not everyone's hobby project is going become the next Linux or gcc, but it's just plain fun to tinker with your own projects. That's what it's about, right? Not ego, not trying to beat Microsoft/SCO, etc ...

  • I'm a desktop support type guy; I like it and get paid well enough. Three years ago, though, I wished like nothing else that I knew how to code, so I made plans to go back to school. Those plans never materialized, and now I'm sure happy that I didn't drop tuition on it. It seems to me that all of those jobs are now going to India, and that bushy-tailed coders straight from college, hip to all the latest tech, can't find work.

    So, while this remains a noble endeavor, I think you'd do much better to appr
    • Really good programmers will always find work no matter where they live. If you can develop a system 2x faster than a 10-person team on the other side of the world (not as hard as it sounds) you will always have prospects. If you're mediocre, then yeah, you should be worrying.

      Figure out some interesting and substantial program you wish existed but doesn't. Design and implement it and give it away for free. It will be a lot of fun and help others at the same time.
  • I was an Applied Math BS graduate and wanted to be in business. Now I am coding PERL and VB.NET as a consultant (yea really! each has its purpose.) I'll take your job and you can take mine.
  • by dheltzel ( 558802 ) on Thursday April 01, 2004 @10:16AM (#8736043)
    You've been under the influence of the dark side for too long. Any code you write now will look like a memo defending a management decision -- pretty and fluffy, but utterly devoid of meaning.

    Really, it's better for everyone if you don't try to bail now. You'll thank me later, when you come back to your senses (at the next company-paid seminar at a nice resort).

    Going into management is like getting married, it's easier to get into than out of

    (additional analogies to marriage left as an exercise for the reader)

  • If you want great fun free from buzzwords, trendy new atrocities, arbitrary limits and preconcieved ideas, get yourself a C compiler and an assembler. There's tons of free documentation and tutorials out there. You can go right down to the lowest low level and hack out all kinds of cool stuff. There's so much to explore. #include ? Not likely! Do it all yourself! :-)
  • Start attending a user group or a vendor's seminars. They'll try hard to get you excited about their stuff and you'll see other people that are excited about their stuff.
  • I am still programming, but the tech I work with is getting old, and I feel the need to keep current and learn new tech. Between work and family, it's hard to find time for new projects. But even a few hours a week can get you going on something.

    I'd say the best way to ease back into programming is to:

    1. Pick a tech topic of interest, only one. (things like Web, Database, 3D Graphics, Networking, UI, etc.)
    2. Pick one API/format set supporting your topic. (If you picked Web, you probably need HTML and JS.

  • by escher ( 3402 )
    As much as I dislike Windows (have to use it at work), the Visual Studio .NET IDE kicks ass. The auto-completion in C# works brilliantly and helps one learn the API extremely quickly.

    (The editor has a memory leak, though, so if you work all day on a large project you can expect the IDE to take up 800MB to a GB of RAM.)
  • To learn a new language usually takes me about a day, sometimes half a day. To learn an API -- I still don't really know any, unless you count Bash. But that depends on what you want to do. For example, as hard as OpenGL can be (ok, not too hard), the real challenges to writing a game or game engine are culling, physics, content, and (undoubtably) more that I haven't thought of. I'm betting things like culling and physics will deal more with algorithms you use internally.

    If you are reasonably intellige
  • I also started on the TRS-80, and moved to C. Other than as required for work, I never use it -- ie: never for personal stuff.

    If you are open to Java, I would recommend checking out the Java Tutorial [sun.com], as it will get you started with step-by-step... using it, I *never* have to deal with OS-specific APIs anymore, and regularly develop my BSD apps on my Windows box.

    Just my 2 cents.

  • How does an old UNIX coder/SysAdmin turned professional corporate cog get back into coding?

    Your question isn't really about learning modern development tools/techniques/languages is it? If you have earned the CS degree that you claim you have, then you would have no problem learning the new stuff. It's all the same fundamental principals but with new and highly marketable buzzwords. It's like riding a bicycle.

    I think that you are going through a mid-life crisis and are questioning some of the decisions

  • The employment picture for software engineers is pretty bad right now, and there is no reason to think it will get better anytime soon. There is rampant age-discrimination and checklist-based hiring, both of which will work against you.

    And you find APIs daunting?

    You aren't running toward programming, you're running away from management. I don't blame you for that (I would do the same thing) but unless you are really talented and motivated you should work on hobby-level coding to start with. At two or t
  • Get a copy of K&R ANSI C (is there a C89/99 version now?). Read all the way through it and do those of the exercises which interest you.

    C is a small language. The C standard library is small (and more importantly, it is *standard* and cross platform). It is both easy to learn and hard-core. It is also one way towards learning the "industry standard" C++ (some would argue that you shouldn't start from C, but as long as you don't develop too many bad habits I think its OK).

    The biggest problem is that C
  • OK, I know I'm late to this party, but hopefully you're still reading reponses.

    My evolution has been a bit different than yours (Atari 800/Apple ][ instead of TRS-80, never became an exec), but the net effect is the same: I used to program, and even was considered good, but now I'm barely a dabbler in it and I want to re-learn.

    I found a really good tutorial called How to Design Programs [htdp.org]. I've looked at/tried a lot of tutorials over the years, and I believe this is one of the best. The language it teaches
  • Yeah, I know the feeling - I'm younger than that, but on the same path. Started on the C64 in the 80's when I was a wee one, then on to GWBASIC & QBASIV & VBASIC, then C, C++, etc. Now I go to school for it, and hope to find a niche.

On the eighth day, God created FORTRAN.

Working...