Becomming a competent developer

Discussion of all things technological and/or gadgety
Post Reply
User avatar
mekender
Posts: 13189
Joined: Tue Aug 19, 2008 9:31 pm

Becomming a competent developer

Post by mekender »

So, after a lot of reflection on my own skills and career path, I have realized that I really, really miss programming and coding.

The problem I have is that my career has never involved developing, only support, sys engineering, sys analysis and project management.

The first 3 years of my BS were spent on programming so I am no slouch when it comes to understanding what code is and how it works. I can usually look at code and understand what it does. But if someone were to give me a task to "write a program that does xxxxxx" I would likely spend many hours looking it up in books.

So the question becomes, how to take where I am now and get myself to being able to be competent as a programmer in the business world?

Mainly I am interested in this for a couple of reasons.

First, the career stability of developers is a lot better than mine. Yes they get laid off a lot more, but they spend a few weeks unemployed when that happens rather than me spending months and months unemployed right now.

Secondly, I really have always liked writing code. I have been doing it for most of my life and I realized that I do miss it about a month ago.

So, thoughts?
“I no longer need to run as a Presidential Candidate for the Socialist Party. The Democrat Party has adopted our platform.” - Norman Thomas, a six time candidate for president for the Socialist Party, 1944
User avatar
308Mike
Posts: 16537
Joined: Wed Aug 13, 2008 3:47 pm

Re: Becomming a competent developer

Post by 308Mike »

Whatever your choice, I wish you LOTS of luck - HOWEVER, luck might not be such an issue since those who can successfully integrate programming and IT support have a MUCH more diverse background and are in higher demand and get paid more than either of the two disciplines alone.

My former boss could do both, and interact well with management and IT support staff as well as the programmers. He's been in HIGH demand all through the economic downturn and subsequent layoffs - but NO ONE wants to let him go. He's simply too valuable (although he also works 6 days a week and usually 10-12 hours per day). His biggest problem??? Trying to find ways to keep the money he's being paid!! I kid you not!!!

IF you can successfully integrate the two disciplines and work them together (AND interact with management to make them understand EVERYTHING that's going on), you will have a VERY BRIGHT future!!!

If you pursue this path, I wish you THE VERY BEST of luck and ABSOLUTE SUCCESS in the near future - and that eventually, YOU TOO may have the same problem of trying to find ways to keep as much money as possible since you're being paid so much!!!! :shock: :shock: :shock: :D :D :D
POLITICIANS & DIAPERS NEED TO BE CHANGED OFTEN AND FOR THE SAME REASON

A person properly schooled in right and wrong is safe with any weapon. A person with no idea of good and evil is unsafe with a knitting needle, or the cap from a ballpoint pen.

I remain pessimistic given the way BATF and the anti gun crowd have become tape worms in the guts of the Republic. - toad
User avatar
mekender
Posts: 13189
Joined: Tue Aug 19, 2008 9:31 pm

Re: Becomming a competent developer

Post by mekender »

Thing is, getting from where I am to where I think I want to be is a bit if a murky path.
“I no longer need to run as a Presidential Candidate for the Socialist Party. The Democrat Party has adopted our platform.” - Norman Thomas, a six time candidate for president for the Socialist Party, 1944
User avatar
Erik
Posts: 3426
Joined: Mon Aug 18, 2008 5:36 pm

Re: Becomming a competent developer

Post by Erik »

mekender wrote:The first 3 years of my BS were spent on programming so I am no slouch when it comes to understanding what code is and how it works. I can usually look at code and understand what it does. But if someone were to give me a task to "write a program that does xxxxxx" I would likely spend many hours looking it up in books.

So the question becomes, how to take where I am now and get myself to being able to be competent as a programmer in the business world?
Practice.
I wish I could give you a secret source of information, but that's really all there is to it. You need to spend those many hours looking it up in books before you get competent and comfortable enough that you don't have to anymore.

Once you have the basic concepts of programming, i.e. you know how code works, you understand the logic behind it, and grasp the overall idea behind it, the only thing that will make you more competent is practicing. The more programming you do, the better you'll be at it, the more comfortable you will be so you don't have to look up everything all the time, and the more efficient your code will become.

I sometimes compare it to being a carpenter. It doesn't take that long to learn how to use the tools, but it takes a lot of time before you can produce good quality results that looks good in a fairly short time.

In my experience it really doesn't matter that much what language you decide to practice in. Just as long as it's something that's easily available and that you can use to do useful applications or gadgets. Once you get good with one language, it doesn't take that long to transfer those skills to another language. A good way to get started with that is to take a program you have and translate it to the new language.

One tip I can give you is build a functions archive. When you write some code that you think you might have use for later, try to put it in a function. Then save the code for that function for future use, and after a while you'll have lots of snippets of code available that you can re-use. This is something that saves a lot of time later on, and makes your developing a lot more faster and efficient. You can cut a lot of time by doing that. Even if the code is in a different language, you can often translate it faster than it would take to write it again.

If you don't know where to start, start with something small and easy. Something you might use yourself regularly, like for instance a time tracking app or a range diary. Start with a very basic program, and then add features as you go. It's easier to spend a lot of times looking in books and online reference manuals if you see an end result that's not too far away.
"Life is tough, but it's tougher if you're stupid."
John Wayne
MarkD
Posts: 3969
Joined: Mon Aug 18, 2008 5:59 pm

Re: Becomming a competent developer

Post by MarkD »

OK, here goes. First, my creds: I've been a full-time programmer for going-on 28 years, spent four years before that programming in college for my BS, and was a founding member of my High School computer club (we had an Apple IIe IIRC). I've done everything from systems where I was solely responsible for designing, developing, documenting and supporting a complete system on my own to working with huge systems and dozens of programmers. I've spent my career doing legacy systems, I currently work on an Adabas/Natural/Cobol/TSO/MVS/CICS system that's been in place since the mid 1980's and used obsolete tech when it was first installed (seriously, a few years ago I had to redo some old Report Writer code because it's no longer supported and was recommended against in the 1970's). Been coding for a LONG time.

The first barrier to entry a programmer faces is HR. I saw an ad back in the 1980's that insisted they needed a candidate with ten years experience in DB2. DB2 had been released by IBM about two years prior to this ad running. I've also had HR people say "Oh, sorry, we need someone who can program in XYZ language." Honey, as long as I've been doing this, hand me a manual on my first day and I'll be writing programs by lunchtime.

Once you get past HR though, most project managers who were once programmers themselves understand that skills transfer. I've never once taken a job where I knew all the languages I'd be using. Once you learn HOW to code, the details of the language are just so much syntax. Doesn't really matter if a statement ends in a period or a semicolon.

If I were looking for a programmer, I'd be looking for someone whose mind works, well, oddly. You need the ability to walk around a problem to determine a viable solution. I do this all the time here, my manager will throw a seemingly insurmountable problem at me and two hours later I have a simple and elegant solution that was always right there, just no one thought in that direction.

Next, there's a time and place for elegance, and there's a time and place for brute force. If you're writing a one-off there's no sense spending three days coding in order to save a half-hour of running, do it quick-and-dirty and get it out the door.

As far as the development process, you have to figure out what works for you. Personally, I'm a flow-charter. If I have something complex to program I flowchart it, nothing fancy, just hand-drawn on scratch paper to determine the logical flow. I do this for programming details, for control-flow and for data-flow. I also do this to figure out what an existing bunch of programs is doing, especially the data flow (because let's face it, your data flow is what will drive you control flow). I've known lots of programmers who hated flowcharts and never used them. I find they make my job easier. YMMV.

As you work as a developer you'll amass a library of standard utilities. For instance, I do a bunch of file matches, I'm handed two files and someone wants to know which keys are in both, or in one and not the other, or vice versa. One-to-one, one-to-many, many-to-many. I haven't had to write one from the ground up in a decade, I just reach into my library and pull out the one that does the type of match they want, change the details, and away we go.

Word of warning: Stay away from the oh-gee-whiz-look-what-I-can-do crap. Remember, someone (maybe you) has to maintain this stuff. I maintain a set of report programs that feature matrices with seven dimensions. If I ever meet the person who designed them I'm going to reach down his throat, grab him by the asshole, and turn him inside out. Sure, it works, but when the VP decides he just HAS to have a new line added to a report I spend days adjusting indices to squeeze that line in, and days more testing it to make sure I didn't screw something else up.

Which brings me to my next programming bugaboo: TEST! If it hasn't been tested, it doesn't work.

Lastly, the biggest pain in the butt you'll encounter will be managers. One of my great truisms is that the three most dangerous things in Corporate America are an engineer with a program change, a programmer with a soldering iron, and a manager with an idea. At a former job I did a lot of work with the Industrial Engineering department. This was back when a paper report (printed on an impact printer) held 132 characters across. The director of Industrial Engineering wanted to add a new column to a report that already covered all 132 characters with data columns separated by a single blank, IOW there was no place to put another column. He said "Sure there is!", pulled out a page of the report that he'd cut with scissors and taped a mock-up of his new column into. I told him if he wished to spend his time in the data center with scissors and tape he was more than welcome to.

I know this was long-winded, but I hope it helps.
John_in_Longview
Posts: 504
Joined: Mon Aug 18, 2008 6:30 pm

Re: Becomming a competent developer

Post by John_in_Longview »

mekender wrote:Thing is, getting from where I am to where I think I want to be is a bit if a murky path.
Answer the following and see if that helps.
What languages do you know? (JAVA, C++, VB, etc.)
Does it really matter to you for which types of industries you would program? (Banking, Scientific, Accounting, etc. )
Are you more interested in building the user interface or the code behind it?

With respect to HR departments: My company almost always hires based on recommendations from current employees. Other companies do so as well. In that case, HR is just there to process the paperwork and make sure you aren't an axe murder. Networking is key. Are any of your friends or professional contacts programmers? If so, then start your networking there.
User avatar
mekender
Posts: 13189
Joined: Tue Aug 19, 2008 9:31 pm

Re: Becomming a competent developer

Post by mekender »

Ok, so I have started going through the book Beginning Visual C# 2012 Programming from chapter one. I have been going through and doing all of the "try it" lessons as a refresher. I have about 6 other .NET books in the queue after this one. I am already getting back into the hang of the logic functions, if/then, case/switch, do/while, etc... For me it seems like the stuff that will get me a bit is going to be things like inheritance, memory management, threading, design patterns, etc... You know, the things that they did not teach in college back 10 years ago.

I have decided that I am going to go with a .NET/C# focus. I have experience with JAVA and C++ so this does not seem all that different, and the .NET stuff seems to me to be where the trend is going. Plus, I have a full, legit copy of VS 2012, so why the hell not use it.
“I no longer need to run as a Presidential Candidate for the Socialist Party. The Democrat Party has adopted our platform.” - Norman Thomas, a six time candidate for president for the Socialist Party, 1944
Draven
Posts: 630
Joined: Wed Aug 13, 2008 2:05 pm

Re: Becomming a competent developer

Post by Draven »

There's a lot of push for Java folks in mobile development...
Post Reply