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?"
University Course Notes (Java) (Score:4, Informative)
http://www.scs.carleton.ca/~lanthier/teaching/C
If you seriouly take the time to try and understand the examples, you'll be back in no time.
Re:University Course Notes (Java) (Score:3, Informative)
Here are the assignments [carleton.ca], exams [carleton.ca], and notes [carleton.ca] for that course as zip files.
There's also COMP1406 [carleton.ca] (main course page [carleton.ca]), the next Java course which focuses on GUI design. And here's the list of CS course web pages [carleton.ca] (not all of them have good notes, it depends on the prof).
MOD PARENT & GRANDPARENT UP (Score:2)
Are the mods on crack again? Why on earth would somebody mod the previous posts down? C'mon guys, mod the frosty pits and goatse links down, not the posts with links to programming course material!
MOD UP PARENT (Score:2)
Thats a pretty good link, thanks!
Just do it :) (Score:1)
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)
*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)
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
Re:Just do it :) (Score:4, Insightful)
Re:Just do it :) (Score:2)
Re:Just do it :) (Score:3, Insightful)
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.
Nothing wrong with Visual Basic... (Score:2, Informative)
Re:Nothing wrong with Visual Basic... (Score:1)
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)
Obligatory (Score:5, Funny)
Get a hobby (Score:5, Insightful)
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.
Re:Get a hobby (Score:1)
Python will get you back on track fast (Score:5, Insightful)
Python Resources (Score:5, Informative)
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 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.
Or an even better language, Ruby (Score:3)
Re:Or an even better language, Ruby (Score:3)
Get involved with an open source project... (Score:3, Funny)
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...
Build on your Perl knowledge (Score:3, Interesting)
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.
Find a project that interested you (Score:2)
i've done this/consider a part time teaching post. (Score:3, Interesting)
i found java (and now
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.
Why learn only OS APIs ? (Score:2, Informative)
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
hrm (Score:1)
Computer Science
Science is to Computers as Hydrofluiddynamics is to plumbing
Why work with API's (Score:3, Interesting)
Three-step program... (Score:1)
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.
I asked a similar Question about a year ago... (Score:3, Informative)
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.
Find your passion (Score:3, Insightful)
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').
Python Learning Foundation (Score:1)
two of my favourite projects (Score:2)
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
Move to India (Score:2)
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
Re:Move to India (Score:2)
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.
Trade Ya! (Score:1)
It's too late for you (Score:3, Funny)
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)
Re:It's too late for you (Score:1)
C and Assembly Language (Score:2)
User Group (Score:2)
Learning curve. (Score:2)
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.
.NET (Score:2)
(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.)
API isn't hard (Score:2)
If you are reasonably intellige
TRS-80 and Coding (Score:2)
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.
hmmm (Score:1)
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
Don't quit your day job (Score:1)
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
take small bites (Score:2)
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
I'm in a similar position (Score:2)
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
Younger, but Same Path (Score:1)