PDA

Click to See Complete Forum and Search --> : Help getting better...


scgtman
May 14th, 2009, 07:25 PM
I've been coding at work for almost 3 years now. I picked it up on my own, starting with Visual Basic 2005 Express Edition. I've tooled around with writing a bunch of different programs that accomplish different tasks. I literally have dozens of little tools deployed at my work that accomplish this little task or that in a way that is either not possible with basic Windows or is automating a process that would take way, way longer if a user did it.

Some of these tasks are:

1. Basic database I/O, i.e., reading and writing values to/from a database
2. Advanced database tasks, i.e., embedding SQL statements into my code to create, modify, delete, update table structures, - or - managing the I/O of BLOBs to/from a database, etc...
3. Basic file I/O
4. Design-time forms creation and layout/design
5. Run-time forms creation based upon differing criteria, including forms creation based upon values stored in a database
6. etc...

I feel like I've gotten a good bit of the basics nailed down. I think I understand the concepts behind programming decently well, not just how to solve a problem using VB. I constantly sketch out the logical flow of a program before I ever start coding, although sometimes I start coding first when a deadline is short to begin with.

I'm lucky in that I don't have to worry about certifications. I work for my dad, and he's not picky about degrees and certifications, just whether or not I can accomplish the task, and I normally do just that.

That said, I feel like I need to add depth and breadth to my knowledge, not only of programming in general (I certainly have more to learn in the "basics" category), but also in learning more of the .NET framework. I'm almost clueless when it comes to .NET 3.0/3.5.

I frequently see code examples online, and if it references anything that's not .NET, my eyes cross. Calls to the Win32API, for example, just don't make any sense to me. Yeah, I can puzzle out some of the basics, but not enough to ever make REAL use of the techniques. (As an aside, one current example of my lack of knowledge is how to integrate an OCX control into an application of mine. The examples are all written in VB 5.0, and although I know how to call the functions I want, I can't even get the library loaded correctly, effectively cutting me off from using the tool!)

Even when examples ARE .NET code, it's sometimes simply over my head.

Does anyone have a good route for me to improve? I don't want to spend hours and hours tracking stuff down online only to realize the poster doesn't have any more clue than I do.

I've read several books, from Wrox's Beginner/Intermediate/Advanced selection to Microsoft Press to Sam's to O'Reilly and Murach. Somehow, they never seem to get me any further along. Either they're covering material with which I'm already familiar, or the concepts presented are beyond my reach. I guess I'm looking for the bridge between the two.

Any suggestions?

I might be able to get my company (read "dad") to pay for some training, but I'm not sure which avenue to take and don't want to waste his money on the wrong one. Microsoft's online offerings seem pretty basic, so I'm not sure they're a good value.What about CD/Video training? Worth it? How about in-class boot camps? Classroom training seems to be well thought of, but a lot of the companies I've researched that offer this seem pretty sketchy. I REALLY don't want to waste several THOUSAND dollars on an MCPD .NET 3.5 boot camp only to come away with the knowledge I had going in.

Please help!!!

FunkyDexter
May 15th, 2009, 07:18 AM
To be honest I think you're already doing the right thing. The best method of learning is doing. Get presented with a problem, try and solve it. Don't know how to solve it? Have a google and maybe ask questions on some forums. Personally, I don't think I've actually looked anything up in a book for years. And formalised training is (IMO) a total waste of money. All you'll get taught is the way that microsoft want you to work in an ideal world... except that the world isn't ideal and you'll be left unequipped to deal with all the oddities and foibles the real world throws at you.

I do sympathise with what you're saying about trawling through stuff from posters who don't have a clue, though. It can be frustrating. But on the flipside, you can uncover some wonderful nuggets of information you weren't even looking for. I find I sometimes get some pointless replies when I post a question as well (sometimes I'm convinced people just want to increase their post count :rolleyes:). Just reply politely saying, "Sorry, not what I'm looking for" and wait for someone else to come back with some info. This forum in particular has enough really experienced members who will come across your question sooner or later.

And really don't be surprised if you haven't got your head round the Windows API yet. 3 years is peanuts and the Windows API is advanced stuff. Want to learn 3.5, just get hold of the latest version of visual studio and start using it, it's got all the old stuff in so you'll be able to work as normal and you'll pick up the new bits as you go.

And most importantly, if you find a topic that's going above your head, ask. As long as members can see that you're at least trying to understand they'll fall over themselves to help.

scgtman
May 15th, 2009, 08:27 AM
Dexter,

Thanks for your reply. Here's where the rubber hits the road, though. The company I work for, my dad's company, is experiencing some slow-down. We may very well have to close the doors in a few months, so I'm facing the prospect of having to go out and find another job. I've never gone to school for development. I have no certifications. I also feel like I'm fairly limited, because while following your suggestions (learning as I need to solve a problem) has worked well, the problems I've face haven't been wide-ranging.

So, how would I get started with, say, network programming, or web stuff (specific, huh?)?

I need a structured way to expand my horizons. Any suggestions?

Psyrus
May 15th, 2009, 09:59 AM
I'd recommend "accelerated" learning classes. While not ideal they will offer you formal training and present you with either a diploma or a certificate upon graduation. In my opinion, you will need something to "get you in the door" if you are looking to land a programming job.

I was a self-taught programmer. I didn't get an job interview until I had a piece of paper saying I could do the job. It was a lot easier showing my prospective employer a diploma than a small Java app I wrote.

Schools similar to ITT Tech (http://itt-tech.edu/teach/informationtechnology.cfm) would do nicely. College courses would be better but that all depends on your situation.

FunkyDexter
May 15th, 2009, 11:21 AM
I don't think you really need to worry. I think most employers are going to view 3 years of experience as far more valuable than any qualification , even a degree. At least, that was the feeling I got when I tried to get my first job with a strong degree but no experience (agencies just didn't want to talk to me).

Also, the areas you have covered are, in my opinion, the two really crucial ones: database and forms. I reckon that covers about 90% of the work available in the desktop market. You could work on your web skills, it's a big market, but there's alot more people scrapping for the jobs.

My best advice would be to start building up a portfolio. Just put some screen shots of some of the apps you've done, some samples of your DB queries and updates, that sort of thing.

And if you find you can't get interview through agencies, approach software houses direct. Nobody does this but, believe me, it works. It's how I got my first few jobs when I finished my degree (the normal channels of agencies and web sites were a complete non-starter). Search for Milk's recent "How to Get a Foot In The Door" thread in this sub-forum if you want a better description of how to go about this.

chris128
May 16th, 2009, 06:25 AM
If you say that the problems you have been faced with are not a wide variety of problems then do what I (and plenty of others) do and try to solve other people's problems on here. I've learnt so many things that I wouldnt of learnt otherwise by helping people on here (Reading/Writing XML for example is something I learnt how to do purely because someone on here was struggling with it, and now its come in handy for my current project, same goes for several other things including some APIs).
I'm in the same boat as you, I've not got a lot of real programming experience (< 1 year) and never had a wide variety of problems to solve with programming that I have done, but because I have spent so much time trying to get other people's programs working, which are doing completely different things to what I would normally do, I've gained a lot more experience than I would of otherwise. Dont get me wrong, im certainly no expert and still class myself as a beginner really but im certainly better than I would of been if I had just stuck to learning just what I need for my own programs and nothing else.

Shaggy Hiker
May 18th, 2009, 09:23 AM
I have plenty of degrees, they just happen to be in fields other than computers. On the other hand, I work for an agency that is not primarily hi-tech. Heck, one of the deployment issues I got to overcome early on, was a case where the end user didn't have a computer and didn't want to use one. Doesn't matter how nice your interface is in that case.

I suspect that there are vast numbers of small operations, especially research and monitoring agencies, that could really use programming help, but haven't quite realized it yet. Unfortunately, if they haven't realized it internally, then they probably also aren't hiring. I've been hired for non-programming jobs, and switched to programming when the need arose.