Slashdot Mirror


Rediscovering Your Inner Code Geek?

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?"

22 of 58 comments (clear)

  1. University Course Notes (Java) by Anonymous Coward · · Score: 4, Informative

    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.

    1. Re:University Course Notes (Java) by Anonymous Coward · · Score: 3, Informative

      Those notes are pretty good, but they seem to be missing Lanthier's trademark brain in a jar and other random images.

      Here are the assignments, exams, and notes for that course as zip files.

      There's also COMP1406 (main course page), the next Java course which focuses on GUI design. And here's the list of CS course web pages (not all of them have good notes, it depends on the prof).

  2. Nothing wrong with Visual Basic... by Praedon · · Score: 2, Informative

    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.

    --
    Just me
  3. Easy... by rasteri · · Score: 5, Funny

    Just screw up really bad. They'll have you writing code again in a week...

  4. Obligatory by wan-fu · · Score: 4, Funny

    It should be pretty easy to get back into the business of coding. Will you want your ticket for New Delhi or Calcutta?

  5. Get a hobby by bscott · · Score: 5, Insightful

    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.

    --
    Perfectly Normal Industries
  6. Python will get you back on track fast by Nice2Cats · · Score: 4, Insightful

    If there is ever a language that you can get up and running with quickly, it is Python. 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.

  7. Get involved with an open source project... by heldlikesound · · Score: 2, Funny

    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...

    --


    Cloud City Digital: DVD Production at its cheapest/finest
  8. Build on your Perl knowledge by Xenna · · Score: 2, Interesting

    I recently finished a pair of GUI apps written in Perl with the wxPerl toolkit.

    The wxWidgets 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.

  9. Re:Just do it :) by 0x0d0a · · Score: 3, Insightful

    "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.

  10. Python Resources by Anonymous Coward · · Score: 5, Informative
    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 - Get the Python interpreter, base libraries from here. The default install includes the IDLE editor.
    • Win32All - Windows extensions package that includes the excellent Pythonwin editor.
    GUI building
    • wxPython - 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 - GUI builder that uses the wxWindows library.
    Performance / Distribution
    • Psyco - 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 - 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 - Full-function SQL database. More complete and advanced than MySQL.
    • PyGreSQL - 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 - Web applications, built on top of the Zope framework.
  11. i've done this/consider a part time teaching post. by ncostigan · · Score: 3, Interesting

    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

  12. Re:Just do it :) by PhuckH34D · · Score: 3, Insightful
    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.

    --
    You're old school? I beta tested the motherf***ing abacus!
  13. Re:Just do it :) by Cthefuture · · Score: 2, Insightful

    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 functionality. They aren't complicated. Just start looking at the documentation for whatever it is you want to do.

    Are you trying learn C/C++ and it's the language that's daunting? Maybe trying to learn object-oriented programming?

    I don't understand.

    --
    The ratio of people to cake is too big
  14. Re:Just do it :) by smallfries · · Score: 3, Insightful

    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

    --
    Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
  15. Why learn only OS APIs ? by manavendra · · Score: 2, Informative

    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 progamming community, and may not have a detailed understanding of OS architecture, API, etc, but are able to still create useful programs and utilities.

    Also, as you mentioned you still meddle with Perl, PHP, etc., I believe you already have the foundation. Further, the real query should be what really do you want to work upon? Do you want to go back and delve into device drivers? Or write nifty little applications that would provide some significant need or provide something the OS doesn't do? Only in such situations would it make any sense, IMO, to learn the OS API's

    If its only some application you want to write (perhaps a faster way of encoding/decoding MPEGs, etc), you can achieve this simply by knowledge of C. Since you already delve into PHP, if server-side development entices you, then you can choose to go either PHP way itself (since you already know it) or the MS way (eh no!) or the Java way.

    Even something like VB doesn't hurt for making your front-ends with the least worry about underlying APIs, but you should first evaluate and understand what exactly you want to do.

    --
    http://efil.blogspot.com/
  16. Why work with API's by Y+Ddraig+Goch · · Score: 3, Interesting

    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.

    --
    Meddle thou not in the affairs of Dragons, for thou art crunchy and with most anything.
  17. I asked a similar Question about a year ago... by north.coaster · · Score: 2, Informative

    You may find the responses 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

  18. Find your passion by justanyone · · Score: 2, Insightful

    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').

  19. Or an even better language, Ruby by OmniVector · · Score: 2

    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.

    --
    - tristan
    1. Re:Or an even better language, Ruby by OmniVector · · Score: 2

      libraries can be written. there are online books and good documentation projects. the code speed can be improved with a better interpreter or compiler. i'd hope it has unicode support, considering the creator is japanease and ruby is mainly used in japan. a language's popularity is no sign of it's quality. python is a poor language, unlike ruby, but highly supported much like perl. however similar to perl, python has too much cruft.

      --
      - tristan
  20. It's too late for you by dheltzel · · Score: 2, Funny
    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)