Fog Creek Software
Discussion Board

Late start into programming (and current languages

Hi all,
here's a brief [I'll try keep it that way] description of my professional path. I went late into programming and i didn't follow an IT orientated education. I'm also mentionning sometime languages/techniques/tools which are attracting/repelling me.
I'm interested to hear comments, specially if some people here had the same kind of start.. 

[first contacts with the web, JavaScript and DHTML]
I had a literature orientated education and started working in a faculty library when I was 20, till then I didn't event have a home computer, didn't even try the Internet.. At that job I had a permanent connection which allowed me to get initiated at last. First to the HTML, and then to my excitement, to JavaScript. My efficiency as a librarian started to get questionable as I was staying on job till 4am., reading tutorials, browsing source code and fighting with rookie bugs - string termination, endless loops, .. [wait.. are these rookie bugs? :) ]. I read books on JavaScript and DHTML, built a site for a music band with a friend designer (hand crafted on a Mac with SimpleText, tested on Netscape). We tried to get more jobs like that, we had 3-5 pending but in the end they were all of the type who think it'd be cool to have a site, but don't have time to give infos/pics..and don't realize that this work has a value and should be paid, more than peanuts (still meeting that exact kind of people these days).

[moving to another country, working as IT admin]
I continued to code some stuff for fun and friends but never took the step to try make it my job (worked further as librarian). Then I met my wife, and for some reason which are beyond the scope of this thread, we moved to her country [now you'll understand my grammar: I'm from the French part of Switzerland and we moved to Croatia, where my wife's from]. That was a good opportunity to re-orientate my career. As I had an opportunity to work right away as an IT admin and get some training in the field: I took the job and passed the CompTIA A+ cert. That was 2 years ago, I was 25: still no serious programming experience, and eventually getting to know Windows/Networks deeper than the common user. During a year and a half I toyed with VBA, WSH, ASP/VBS/ADO, as well as tutorial/exercises on VB 6 with VisualStudio (ah, and btw that was my first real work on PC, worked on Mac only before).

[moving to C#]
After that period, I took the leap and went to a C# / course. Bought books (Dino Esposito was great reading!), got, browsed the different .net community sites (the CodeProject and such) and coded at home. I wanted to come with some simple web DB frontend with some custom controls, to use as a "portfolio" to find a job as a C# web and/or desktop programmer. This was all great to me, C# was very natural shift after JavaScript, the possibilities with the APIs for Windows and Office were, well, opening new horizons after working in the browser's window (!). Using controls compared to ASP/VBS/ADO seemed like using a word processor instead of a pencil and paper..
So I had set up my SQL server, wrote a few stored procs, made my DB web frontend (news page with a custom date control), got to know Windows.Forms too. This worked all well and was great to me. After 6 months, a job opportunity came (_how_ is beyond the scope of this thread).

[1st programmer job]
I took the job in October last year and I'm still there, so I'll shift to present tense.. It's a 20 people firm, developing database applications with Oracle/Clarion/PL-SQL. It's got a 3 on the Joel test (cos it's easy to make a daily build in one step with clarion). Otherwise we use old version of applications (Clarion 5.5, Oracle 8.1), have no bug tracking, implement customers request at random (the project on which I work in "on field", phone calls/visits every 10min, 5 workstations in one room), use a Clarion home-made source repository (nothing for PL-SQL code though)..I think you get the picture? As you'll read further you'll see that I don't feel all-satisfied, all-self-developing at that place. I went there cos at that time I had little chance to find job without prof. experience at all and being still quite limited in my expression in Croatian. Therefore I think it was a good opportunity anyway.

I don't know yet Clarion enough to trust my judgement on it (10 months). But anyway I have to put my frustration in words.. I guess it's a great tool to quickly develop database apps and I suppose that when you master Clarion and program your own templates you can improve productivity. But my feeling in using it every day is like sweating on carving your design in wood when you could be painting on silk, forcing it to get somehow the shape you would like it to have. What do you think of these lines:
    ?OptionGroupVariableName{PROP:ChoiceFeq} = ?RadioVariableName      !Sets a radio on at runtime
    WindowName{Prop:Text} = 'Runtime title text'                        !Sets title of a window at runtime
When I compare to C#, it hurts me to write code like that.. It seems also that the developers of Clarion ate their own dog food, unfortunately, so the whole application looks terrible.
I guess it can't be so black/white, so I'd be interested to have feedback about what programmers think of Clarion..

[Oracle/PL-SQL, and.. what next?]
I felt Oracle much more practical and precise to use (as a programmer, not DBA) than MS SQL (is it possible to write such complex and structured stored procs with MS SQL Server?) and PL-SQL a pleasure to use to forget a bit about Clarion. I think this is about all I'll learn in this firm: Oracle/PL-SQL and some kind of overview of professional software development [what not to do].

Now comes the "what next" part, which is the reason for this [brief (!)] description of my prof. path.
I want to look for a new job, will search for firm using .net, hope my knowledge of Oracle will help me even if I guess firms using .net rather use SQL Server (feedback  anyone?). I'm also interested in telecom apps (like SMS communities and other interactions) which I don't have a clue how to develop/test on a PC (without server subscription for SMSs and such.. Is there some combination of emulator of mobile phone / emulator of mobile services server for Windows??).. I also have interest in possibilities of Mono on Linux/MacOS, anyone has some experience with it? links, feedback?
Sometimes I'm wondering if I should look for a design studio looking for a programmer and get more experience there. But it looks like another step back/stagnation.. What I really want is to work on projects like content management or workflow management using .net, or what I've mentionned in prev. paragraph. One thing I know is that I made the mistake of not using C# at all since I started working in that firm, and I'll need to catch up before thinking about goint to an interview.

What would you be focusing on in my place? My particularities are that event though I've got a fairly good knowledge of C#/.net framework, and IIS, I have prof. experience only with Oracle/PL-SQL/Clarion.. On the side, I also have fairly good knowledge of client side scripting, Flash/ActionScript (and speak French, English and Croatian..).

[about replies -if any]
It's a big mess I've wrote here, going into many direction and without a precise question. Even if this board is pretty clean, I've seen few dirty flames anyway..I hope I'll be spared [as well as the other readers cos it's usually not so interesting to read]. I just expect that in all this text there are enough subjects which will "hook" different people for different reasons and generate interesting talks.

Thanks for your attention if you followed till down here X-(

can't get fullName due to unknown error
Wednesday, July 14, 2004

Look for other jobs all you want, but don't quit your current one to get another one.  It's much easier to get a job if you are currently employed, plus the money doesn't stop.

Wednesday, July 14, 2004

Get .Net certified.

The true merit of certification is debatable, but it does matter to the HR department and that's what counts.

Ged Byrne
Wednesday, July 14, 2004

(Hmm, they should do something to stop all these people flooding from Switzerland to former Yugoslavia.)
Sometimes I'd rather be a Swiss librarian. Well, the grass looks always greener on the other side.
25 is not so late, after all. I was still learning the basics at that time. Still much left to learn.

Wednesday, July 14, 2004

Certification has some really interesting aspects.
1.  If you don't get certified, and you can't do the job, the client can blame you for not being certified.
2.  If you get certified and can do the job, it reinforces for the client that certifications are valuable, and it helps reinforce the fear that perhaps if you hadn't been certified, you might not have been able to do it.
3.  If you don't get certified, but you CAN do the job, however unlikely it is that you would be hired because of #1 and #2, you will likely be considered an expert.  There aren't too many other choices with this one.
4.  If you get certified, but you CAN'T do the job, you can blame it on numerous client things, and they really can't say anything, because you are certified. 
4a.  However, there is the possibility that you really don't know what you're doing, which would require someone at the client to understand the language pretty well -- i.e. someone else certified.

So, I'd say if the client has knowledgeable people, and you don't know what you're doing, don't bother getting certified, because #4a claims you'll be caught by the knowledgeable people, and then bad stuff will happen.  However, I don't claim that all companies are equally represented under the above umbrellas.  I would guess that the most likely scenario for a certification's ubiquitous proliferation is that people get to #4, and #4a is cleverly avoided because the client in fact doesn't have anyone knowledgeable enough to throw a flag.

Wednesday, July 14, 2004

unfortunately, some employers will not equate Oracle to general Database experience (ie SQL Server). Personally, i think Oracle is harder then Sybase or SQL Server

Wednesday, July 14, 2004

Oracle IS harder than Sybase or SQL server, but if all you have is PURE Oracle experience, it doesn't always translate well to other DBMS's and so I think that managers would be correct in not considering it General database experience.  Oracle is sort of in its own little world, especially on the DBA side of things.

Wednesday, July 14, 2004

I am replying simply because you put so much effort into your post.

.NET has only been on the market for two years and many companies simply have no interest in adopting what they consider to be bleeding edge technology. That isn't to say nobody is working with .NET just that your chances of actually finding several companies that are using .NET in your neck of the woods might not be very good.

I wouldn't worry about having Oracle database programming experience rather than SQL Server. Oracle is a very popular database especially within large companies.

Certification is something you should think about pursuing. Also, I would look for a local .NET user group and if you can find one start attending their meeetings. This could be a good opportunity for you to network which is how most programmers get new jobs.

One Programmer's Opinion
Wednesday, July 14, 2004

I highly recommend taking some classes in CS theory. I am a pretty much self taught programmer myself but I really got a lot out of a CS theory class I had at university. (I got an unrelated engineering degree)

Wednesday, July 14, 2004

Thnx for your comments.
I just worked a few months with SQL server. I was using the MS SQLHelper classes and wrote a few stored procs to handle inserts/deletes and some selects.

About Ms SQL/Oracle, I feel Oracle stored procs uncomparable to SQL Servers' and Oracle hints (/*+ hint */ select code) give great control on the costs of your query. 

But, again, from the programmer (not DBA) point of view I don't get what are the gaps that would stop someone to hire you cos you have mostly experience on another DBMS.. Is it about the language specifities for stored procs? About writing joint queries (I guess it's pretty quick to transpose this knowledge.. from one DBMS to another?) ? Or is it actually about managing the tables/fields/authentication and such?

One more question, which will maybe sound stupid for someone supposedly knowing the .net framework.. [as an excuse I didn't touch remoting, and didn't make any reading for last 6 months (no time..) ] : I've read somewhere (ok, i did a _few_ readings) some discussion about web application and the problematic of thin/thick clients, use of web interface or applets/activeX and how important point that is lost with in-browser apps, is non-interoperability with other apps on the client PC (Office e.g.). And was quoted as a cure to this problem. Now, does this mean that you can write a .net app which clients can communicate without a web server? Is that what's remoting (sounds like it could be it, by definition..)? How are the calls done, HTTP? SOAP?

Greetings from Croatia, small country for big vacation [in contrast with Switzerland, small country for small vacation :) ]

can't get fullName due to unknown error
Friday, July 16, 2004

*  Recent Topics

*  Fog Creek Home