nerdnyc.com
 > SAVE THE DATE: RECESS JUNE 29th!    > RECESS: Submit Games!  

 > True Nerd Trivia: May 29th    > Boardgame Night: June 21st  

 WHAT'S NEW?   RULES   FACEBOOK   TWITTER   CALENDAR   PLAYER SEARCH   PRIVATE ROOM   STEAM   NEW TO NYC?   NERDNYC SHIRTS 


How Do I Level Up As A Coder?

Yeap, you're on it. Gibson had it all wrong.

Postby phredd on Mon Apr 11, 2011 9:59 am


I'm hoping the copious coding nerds around here can give me a bit of guidance here.

I would like to improve my programming skills to the point where it would be feasible for me to be hired as a low level code monkey of some stripe. Mostly, I'm thinking about being able to do useful things with GIS and databases, as that kind of thing could easily be leveraged for archaeology projects, which is primarily what I'd like to develop my skills with an eye toward.

My current base of knowledge is this:

• 1980s - high school. Learned BASIC over course of a couple semesters. Never did anything extra-curricular
• 1990s - out of college. Learned PASCAL in a programming class. Taught self Perl. Took algorithm classes. Did a few tiny projects with perl to generate HTML code in the EARLY days of http.
• 2000s - sysadmin @ Columbia. Shell scripting, but never often enough that I got terribly proficient. Also have spent a not insignificant amount of time bashing on source code and compilers to make them work in custom environments, but this is mostly just an issue of finding places in someone else's code where things are pointing to the wrong place on my system and making a quick edit.
• Present - Teaching myself Python (and have dug up a ton of useful resources for this purpose)

I've been around the block a few times with learning basic algorithm issues, am comfortable with recursion, etc. and have learned different programming languages at different times and have some proficiency with them and with general concepts. However, that's about as far as it goes. I've only dealt with command line and file based I/O, no GUI stuff. Haven't ever had to worry about system tuning as I've never had to write anything that's been more than a few hundred lines or had to munch serious buckets of data.

So, let's say I'm a 1st level coder. How should I proceed in order to make progress towards eventually being able to develop my own projects rather than just being able to churn out coding problem sets?
DC hates girls. And money. - Viper
User avatar
phredd
Needs Visine
Location: Bronx

Postby jenskot on Mon Apr 11, 2011 10:12 am


Do you know what archaeologists use now?

How do they store and reference data? Do they have content management systems? Do they use mobile devices or tablets? Are they just using Excel sheets?
User avatar
jenskot
Total Posts: 0
Location: Forest Hills / Queens / NYC

Postby Pillar on Mon Apr 11, 2011 10:14 am


Phredd and I are in basically the same boat. After a fair amount of investigation, I am convinced the only way to really learn and improve is to do.

I am presently teaching myself Python as well. In order to force myself to learn, I pushed for making a new project we (and by 'we' I mean I will be the only one coding anything) are starting at the lab to be done in Python. I've also been advocating using Python for some other existing tasks. Now I've got deadline pressure forcing me to study, look up stuff, and implement. It's been pretty easy to pick up the basics so far. What I'm producing may not be the best code in the world, but it works and is helping me learn.

I've also considered trying to create other projects for myself to sharpen and enhance these skills. One idea I had was to try to develop a mobile app for the iPhone or Andriod -- just to see if I could do it well. I haven't tried this so far because I've had other self-improvement projects going on that were taking up my free time, but its still something I think about.

There are also competitions like TopCoder that I've thought about entering just to see how much I could learn just by participating. I haven't had the time to investigate them properly yet, though.

Pillar
OOTS - Vaarsuvius: And once again, Probability proves itself willing to sneak into a back alley and service Drama as would a copper-piece harlot.
User avatar
Pillar
Speaks when spoken to

Postby phredd on Mon Apr 11, 2011 10:33 am


jenskot wrote:Do you know what archaeologists use now?

How do they store and reference data? Do they have content management systems? Do they use mobile devices or tablets? Are they just using Excel sheets?


I do have a fairly good idea about what archaeologists use, but I think that focussing on that goes outside the scope of my question. Digging down into such a narrow specialism wouldn't help me develop the kind of proficiency and flexibility I'm looking to achieve. I'm really looking at what I can do outside the context of archaeology to develop useful programming skills such that I could, in theory, be able to actually send my CV out to positions advertised for 'developers' or 'programmers'.
DC hates girls. And money. - Viper
User avatar
phredd
Needs Visine
Location: Bronx

Postby jenskot on Mon Apr 11, 2011 10:36 am


You could start with the Google App Creator: http://appinventor.googlelabs.com/about/

And then move your way up to: http://developer.android.com/index.html
User avatar
jenskot
Total Posts: 0
Location: Forest Hills / Queens / NYC

Postby littleidiot on Mon Apr 11, 2011 10:41 am


GIS in academia tends to focus on low-level ''this works for my algorithm" languages like PERL and FORTRAN.
GIS outside of academia can still be rather PERL focused which I believe is a huge problem as PERL can get tricky on large projects.
My GIS background in coding has led me down the following path,

- C++
- Java
- Ruby On Rails

Note that we are something of a maverick in pursuing RoR though.
It is the most shattering experience of a young man's life when one morning he awakes and quite reasonably says to himself "I will never play the Dane."
User avatar
littleidiot
Related to Alan Turing
Location: manhattan, nyc

Postby IngredientX on Mon Apr 11, 2011 11:24 am


I'm in a similar boat, but coming from a different direction. I started with BASIC as a kid, and dabbled with VB after college. At work, I started using VB.NET, and then moved to C# because I liked the syntax better.

It was around then that I started taking programming seriously, and I began to study object-oriented programming. I then moved to Java (with a quick stop in Perl and Ruby), because that's what my company uses.

I'm now proficient enough that my company has officially made me a programmer. But now I have to learn things like unit testing, build systems, and enterprise frameworks. Java is full of add-on technologies that I must pick up.

So I guess it depends on the kind of programming you want to do. I seem to have ensconced myself in Java enterprise technology, but there are so many different directions you can take it (mobile, web, etc.).

One thing that might help is learning basic object-oriented technique. I know Python supports OOP, so it's something that would be useful no matter where you go. After that, you can take that knowledge with you to Objective C, Perl, or any other language that supports it.

===
"I HAVE A STYROFOAM CUP THAT I SCREAM PROFANITIES AT. I GL?UED GOOGLY EYES ON IT AND DREW A SAD MOUHT. SOMETIMES I THINK IT LOVES ME. IT IS A PRETTY GREAT WIRELESS ROUTER." - mumbles
User avatar
IngredientX
Runs on Power Cosmic
Location: Close enough

Postby mumblethrax on Mon Apr 11, 2011 11:34 am


Have you tried eating a Saif corpse?
"From what I've observed some birds are pretty gay." ~ Evilyn
User avatar
mumblethrax
Grand Master of Flowers
Location: Up in this

Postby Pillar on Mon Apr 11, 2011 11:54 am


IngredientX wrote:I'm now proficient enough that my company has officially made me a programmer. But now I have to learn things like unit testing, build systems, and enterprise frameworks. Java is full of add-on technologies that I must pick up.


That reminds me of something. In academia, coding is highly-individualized. What I mean is that a typical academic coder is writing software to solve a particular problem that they have, and often do not give any thought or effort to making the code accessible or user-friendly to others. Beyond this, there is typically very little done in terms of software production systems and all the techniques companies use to make sure software is finished on time and is profitable/effective. As I code and develop in my lab, I am trying to make use of the good aspects of those corporate techniques, both to improve what I produce and make the jump from academia to corporate easier (when/if I decide to make it). However, I haven't found a good set of resources to explain those techniques, probably because companies don't really want to advertise how their coding teams operate too much.

IngredientX wrote:One thing that might help is learning basic object-oriented technique. I know Python supports OOP, so it's something that would be useful no matter where you go. After that, you can take that knowledge with you to Objective C, Perl, or any other language that supports it.


I'd like to say here, for the record, that Perl's OOP is horrid.

Pillar
OOTS - Vaarsuvius: And once again, Probability proves itself willing to sneak into a back alley and service Drama as would a copper-piece harlot.
User avatar
Pillar
Speaks when spoken to

Postby littleidiot on Mon Apr 11, 2011 12:03 pm


Pillar wrote:However, I haven't found a good set of resources to explain those techniques, probably because companies don't really want to advertise how their coding teams operate too much.


You've just got to know where to look. There is no secret, it's just wrapped up in comp sci speak.

These techniques are described in various design methodologies and patterns.

So '<your language of choice> design patterns' would be your google search phrase.

It's a steep learning curve though.
It is the most shattering experience of a young man's life when one morning he awakes and quite reasonably says to himself "I will never play the Dane."
User avatar
littleidiot
Related to Alan Turing
Location: manhattan, nyc

Next

Return to Technology, Internet

Who is online

Users browsing this forum: No registered users and 2 guests