Click to See Complete Forum and Search --> : What are good ways to acquire new skills?


Stephen Naughton
July 16th, 1998, 02:47 AM
Does anyone have any good suggestions on what they think is the

best way to acquire a new programming skill? Many of our

bookshelves are littered with good intentions. How does one go

from enthusiasm to acomplishment, and from halfway knowing the

material to mastery? What are the best publishers? Should one

pursue formal academics? What role do coworkers/peers play? Is

your employer helpful in this regard?

pierrot
July 17th, 1998, 07:00 AM
Best ways:

1) Various developement / missions

2) Projects requiring GUI / Real time / telecom / db skills


MFC Programming books are never usefull after 1,5 years on MFC. So get books about about a precise subject like COM , DCOM, ..

Howard Uman
July 17th, 1998, 05:04 PM
I've found the books from Wrox to be outstanding. Most of the MFC books suck and are the same. I've found VC++ Unleashed to be a great reference, and Beginning MFC from Wrox to be pretty good.

Neil Weber
July 21st, 1998, 08:24 PM
I've taught myself C, C++, OOD, X11/Motif, STL, Tcl/Tk, Java, UML, AWT &

Swing and am currently working on Corba, MFC & Win32. In each case, I've acquired the most hardcore book I could find on the subject and most

importantly tons of source off the 'net. Then study the book until you're bored. Start developing a simple program which emphasizes the new technology

and refer to the books and source examples whenever you're in trouble. Then,

do the same with a larger program. Then, put the techology on your resume

as a skill with which you have "moderate" experience in. Hopefully, you

can use the skill at your current job. With my crappy long term memory,

I'm having a hard time remembering how to do TCP/IP, POSIX, ksh, Oracle, YACC/LEX, etc. Fortunately, a lot of stuff just doesn't seem important

anymore. Remember determining the runtime complexity of algorithms? Or

how FORTRAN 77 stored arrays? Or pretty much everything I learned in school 12-14 years ago.


The best way you can help somebody learn new skills is to put source code on

the net. Comment the code a little particularly where you've encountered problems. Thanks to all the X11/Motif, C, and C++ developers who have done

just that.

Eamonn Duffy
September 9th, 1998, 03:54 PM
The best way I have found to acquire new skills - in the shortest amount of time possible - is to go on a specific training course at a good training establishmnent.


The best one I have found to date here in the U.K. is QA Training (and no, I do not have any affiliation with them whatseoever).


Admittedly this approach is not always practical from a cost or time point of view. It also very much depends on your learning style and how soon after the course you get to apply your new skills.

Tomaz Stih
September 21st, 1998, 05:53 AM
Best way to learn programming is to write programs. If you are interested in MFC then I would suggest to start with Herbert Schildt's : MFC Programming from Ground Up because it gives insight into MFC as a C++ library and shows you how to program MFC without document/view. Frankly starting from zero with document/view architecture is very difficult and results in unstable programs that are a direct result of programming having no full control over the execution.


My first two programs in MFC were a hex viewer/editor (to test document/view) and a small database (to test classic MFC application/window approach).


Tomaz

Michael Curtin
October 21st, 1998, 10:10 AM
I have been an on/off hobbyist programmer since I was a kid working on Commodore PETs in grade school. I just started learning C++ a year ago and started working on MFC projects this summer.


Having gone through the learning curve on programming languages several times,l I have to say that books have been my primary source. I rarely finish them. Instead, I usually work my way through the first few chapters until I get this nagging desire to try to build my own program using what I've already learned. That project usually takes on a life of its own and I learn on a "need-to-know" basis. I research the skills I need to learn to complete the project. This continues through a progression of increasingly more difficult projects.


I believe having a felt need is important. If you play golf, write a program to keep track of your golf scores. If you're a teacher, write a gradebook program. I just finished my first major MFC project, which FTP's a file containing survey results from our school web site to a local disk. I made it because we needed it, and I learned a whole lot in the process.

delbert Harry
October 21st, 1998, 07:38 PM
The problem I have is that when I learn something I don't remember it for the next time that I need it. I would recommend to every programmer that you create your own little technet of things that you have learned to do and use them in the future on other things. Also going to greate websites like the codeguru.com and www.devx.com where you are put in touch with programmers who are helping programmmers.

Tomaz Stih
October 27th, 1998, 06:41 AM
Hear, hear.


I am having similar problems and am solving them with well organized

and standardized source tree.

The technique you are using with your own devnet is often used in big

companies and is also known as "patterns".


Lp,

Tomaz

Babar Ahsan
October 30th, 1998, 05:00 PM
Start from little problem and then ends it to the mission criticle project is the key to learn any new thing/lang/....

Rick Elbers
November 10th, 1998, 09:10 AM
Harry,


It was very interesting for me to read about your feeling that you often

do not remember the knowledge you need and have studied before.

I share that feeling, and being originally a gamma-scientist I use a few

"tested and approved" methods like repitition, and anchoring( put your

knowledge in a wider "frame work"), which seems to help a little bit.

The problem is of course that a lot of time you don't have or don't take

time for that kind of structuring things. But it is a very well know fact that a few

repititions greatly( around 500 % or something) enhance long term

retention....Certainly with a framework as big and as developing as MFC

it is my experience that you really need that big and broad feeling for

what MFC has to offer, which IMHO you can only get by structured

learning( as oppossed to "on the spot grabbing"). The short time cost

against the long term profits again I am afraid.....


Greetings from Holland,


Rick Elbers

[When reading it over I think maybe I had to stress the value of "incentives"

too. When something you learned resulted in some positive appraisal its less

likely that you forget it, or maybe its more likely that you can get some room

for repetition..]

Steve Bailey
November 10th, 1998, 03:04 PM
My approach to learning a new language gives me the chance to overcome those brain-freezes that sometimes occur when trying to make a new concept "click". I give myself a chance, and don't rush it,but somehow I always end up learning it quick, anyway. Here's how I set out learning WIN32.

I took the famous Petzold book, slapped the brand new book on my kitchen table, and counted how many pages there were in the book. I divided this number by 60 days, because I wanted to cover the whole thing in two months. This was a reasonable number, so I promised myself to cover at least that amount daily, but on those days where the brand new concepts were easy, I'd keep reading past the alloted time, so I ended up finishing the book before those 60 days.


Then I went through a second time, and everytime I landed on a topic which was difficult, I had a second book (Rector's Win32 book) to cross reference and read more on it, so I could really fuse it in my brain. And keep in mind, while reading the Petzold book on the second round, I was also constantly askimg myself, what app am I going to write after this second reading... that will use basics such as dialog box's/ file input, output/ menus, etc.. , so I wrote a small reminder program called Remind32 (32-bit).


So that's what I'm diong with MFC, i can't believe you're still reading this.. i feel like I'm babbling, but hey I'm at work, and the phone cals have ceased for now.


I picked up the Prosise book from BookStar, and counted the pages, and attacked it.. while cross-referencing with Kruglinski (inside vis c++). I got very excited about mfc, and how job-marketable it is, that I bought 3 more books. So to make a long story even longer (j/k), I am now workign on my first MFC app, that will use sockets.. it'll be a very simple ftp program, something that I customized for my current job (tech support). I can't believe how much easier it is to write this app than if I were using win32. Everything from init'ing the controls, to responding to buttons, to writing the handlers is way better.


I still don't believe much in the quality of Windows overall, and how slow it is, but I've stopped caring.. I'm simply going to be a robot and just learn what's in the job ads, be very good at it, so I can be employable. (linux programming comes next)

Until I start my own company where I base my technology on more stable OS, and do things my way.


So in summary, take your time, do something every day even if that first struggle to read the book is very hard.. you'll naturally like whatever you're learning.

Shrikaant Sathe
December 29th, 1998, 01:25 AM
To acquire new skills :


1) Be Concept Savvy & grasp the basics correctly & thoroughly.

This will go a long way in acquiring new skills in new technologies

Products, Programming tools etc.


2) Study & read a lot on various diverse topics.

This leads to intelectual enrichment & builds inner self confidence.


3) Take & Concentrate on one thing at a time.


4) Enjoy some good sport & also a hobby.


5) Listen to some soothing music evey once in while & take

a long walk to recharge the "inner batteries"


6) Rest & eat well & be in a good physical shape always.

Prem
January 15th, 1999, 07:01 PM
Good Advice Guys!

I've read most of the responses to the original question and is pretty

amazed at how much I've learned.


One thing I've noticed working with programming experts is that they

are ALL very humble people. it is probably b/c they know that know no

one can ever know everything.


So, for my little advice---

Leave room for the stuff you dont know, be open to all ideas (you

dont have to accept them, just consider them) and you'll be

amazed how much people will be willing to help you.


Most of all, know what you don't know, so you can ask those who do know.