Journal Articles
Browse in : |
All
> Journals
> CVu
> 121
(30)
All > Journal Columns > LettersEditor (132) Any of these categories - All of these categories |
Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.
Title: The Wall
Author: Administrator
Date: 08 January 2000 13:15:34 +00:00 or Sat, 08 January 2000 13:15:34 +00:00
Summary:
Body:
Francis,
I am a recent addition to the ACCU fold, and am now on my second edition of C Vu (11.6). Your appeal for contributions caught me guiltily relaxing with a copy of C Vu and a cup of (mostly!) coffee in my armchair, so I decided to wet my virtual nib and get writing. This missive is probably several (for the price of one?) as I have a few things to get off my chest so to speak, so feel free to split this mail for useful or interesting content (in the event that there is any!). I guess it's also a symptom of a disorganised mind. However ...
I am fairly new to the domain of programming. I'll qualify that a little, since I wrote my first program over 16 years ago (I was 11 - not much of a give-away, that). I was prevented from indulging my programming talents at secondary school, other subjects taking preference for various ideo-(il)-logical reasons, and so I remained a bad BASIC programmer until I decided to get a new life and go to University. I was 22 years old. Here I successfully (honest!) unlearned most of my programming "skills", and took my first tentative steps to becoming a halfway decent 'proper' programmer. I'm sure anyone who reads this knows what I mean by *that* expression.
Along the way I learned (or more accurately, was taught ;-) Pascal and C, and played with real-time and embedded systems programming, which became an area of special interest in an intellectual sense, because it provides so much in the way of unique challenges. But with the emphasis on UNIX systems programming, and embedded systems, both of which were largely taught in the "small and efficient makes up for incomprehensible and arcane", there wasn't much room for "Software Engineering".
The latter was covered in almost a bolt-on upgrade style - by the time we'd been taught basic programming and algorithmic skills, along with basic system analysis, it was time to learn Z. I confess that I was fair at this subject, but haven't used it since. Object Oriented design was relegated to a couple of lectures and an example program (using - you guessed it! - fractional numbers) in Object Pascal. I recall being told (on the subject of choosing classes) that an example of a Class was PieceOfFurniture and an example of an object of that class was ATable. Marvellous!
So here I am in my first commercial programming job, and I've lasted 4 months so far. Since graduating (three years ago) I took it upon myself to learn C++, and have been writing C programs in C++ syntax ever since :-). My job is as a C++ programmer, so I have decided to really bite the bullet (which is where you come in, incidentally). Finally I feel that I'm making progress. The paradigm shift from C to C++ has been (and is/will be, I know) considerable, but to feel that I'm learning again is great. And it's so much easier to be able to see real programs in action, instead of deciding whether this is a PieceOfFurniture or ATable.
Now I feel that I'm making real progress in becoming a 'proper' programmer. I think I've finally banished the ghost of "small and efficient ... " mentioned above. So do I consider my university education valuable? Of course. I wouldn't be in such a good position to learn new things now if I hadn't attended. And I learned much in terms of system architecture (both hard and software) which has borne me in good stead.
The point is that having already unlearned a lot of bad programming habits in the transition to structured/modular programming, I am having to unlearn again in the transition to OO. Life is hard!
It is made very much easier being surrounded by skilled professionals (who manage not to make me feel too much of an idiot!), and having access to simple things like a good C++ compiler with near compliance with the standard (Inprise/Borland Builder 4), and having access to resources such as ACCU. I also use the Borland public newsgroups, which have been absolutely indispensable. They are populated by people with real enthusiasm and willingness to answer even the most basic of difficulties. My hat goes off to them, too.
There was a remark in the "Questions & Answers" section of C Vu 11.6 about how instructive understanding other people's problems is. Using the newsgroups has definitely helped me, both in having my questions answered and in providing answers to the newsgroups. Furthermore, having your responses shot down (;-)) is also instructive. I've had my pride pricked on more than one occasion!
Still, on that note, I'm working on some responses to the Q&A section mentioned above, which I hope won't embarrass me too much!
Kind regards, and many thanks
Steve Love <Steve.Love@tnt.co.uk>
In my early days as a teacher my Head of Department gave me a golden rule for teaching 'Never teach anything that you latter will have to deny.' I wish more teachers understood that. I also wish more students realised that learning new things does not mean you have to discard the old. Hidden inside OO you will find some procedural programming. Hidden inside that you will find some structured design. The secret is in understanding and choosing the best tool for the task. One of the things I find attractive about C++ is that it does not force me to think in 'The One True Way' but allows me to find my own path.
Steve has already found one of the most important secrets, participation is a great aid to learning. The more that follow his example to the better value we all get for our membership.
Notes:
More fields may be available via dynamicdata ..