Where next?

S

Sarah kutu

Hey,
I've just finished my book on c and i'm wondering what do I do now?
I know about data structures, algorithms etc. but where do I go now to
advance my learning and become a professional?
Thanking you in advance.
 
J

John Kelly

Hey,
I've just finished my book on c and i'm wondering what do I do now?
I know about data structures, algorithms etc. but where do I go now to
advance my learning and become a professional?
Thanking you in advance.

On piratebay you can find many ebooks to download. More than you can
shake a stick at.
 
K

Keith Thompson

John Kelly said:
On piratebay you can find many ebooks to download. More than you can
shake a stick at.

Or you could actually buy the books and let the authors earn a living.
 
J

John Kelly

Or you could actually buy the books and let the authors earn a living.

How can you make wise purchases without examining the contents first.
Some books aren't worth the money. Those authors can try another line
of work.
 
J

Jens Thoms Toerring

How can you make wise purchases without examining the contents first.
Some books aren't worth the money. Those authors can try another line
of work.

Ever heard of the nice institution called a "bookshop"? I never
have been forced to buy a book just because I spend some time
browsing through it. And also a library may do - if you don't
know yet they even encourage you to borrow a book for a certain
time!
 
S

Seebs

I've just finished my book on c and i'm wondering what do I do now?
I know about data structures, algorithms etc. but where do I go now to
advance my learning and become a professional?

Get out there and code. Find projects that appeal to you and work on them,
whether they're your own projects or open source projects.

-s
 
S

Seebs

How can you make wise purchases without examining the contents first.

Reviews.

There is another interesting data point: People who have no choice but buying
something or not buying it give a very different value to it than people who
can get it for free. A whole lot of things that "aren't worth the money" if
you can steal them are "a good buy" if you can't steal them.
Some books aren't worth the money. Those authors can try another line
of work.

Oh, man, I feel horrible. It's been something like a day since we've all
admired your pathological narcissism, you must have been feeling really
lonely and left out.

-s
 
J

John Kelly

Ever heard of the nice institution called a "bookshop"? I never
have been forced to buy a book just because I spend some time
browsing through it. And also a library may do - if you don't
know yet they even encourage you to borrow a book for a certain
time!

Not everyone lives where good libraries, or bookshops, are. In most
places with population less than 1,000,000, the few hardcopy technical
books you can find, are seldom the ones you need.
 
T

Tom St Denis

Not everyone lives where good libraries, or bookshops, are.  In most
places with population less than 1,000,000, the few hardcopy technical
books you can find, are seldom the ones you need.

I live in a sub-burb of a city with around 75K people here. We have
SEVERAL book stores chains. Most reference books are available in any
decent size B&N, Chapters, Borders, etc. As for the more academic,
use reviews, if you actually do your homework you can find reliable
reviews.

Sometimes you just have to take a chance too. Most of the time we're
talking about $50 books, so even if it does suck you're not out that
much [and you'll learn to do better research for the next purchase!].

Tom
 
T

Tom St Denis

Hey,
I've just finished my book on c and i'm wondering what do I do now?
I know about data structures, algorithms etc. but where do I go now to
advance my learning and become a professional?
Thanking you in advance.

Being a good software developer is a multi faceted job but mostly it
breaks down to

1. Know about computers (how they work internally, how the pieces fit
together, etc)
2. Know about languages (not specifically the syntaxes but that's a
good start, but also the process from source code to executing code,
you really ought to be able to switch from one language to another in
most cases)
3. Be able to think in abstracts.

#3 being very very important. I've worked with a few interns that
might know about technology, have fancy phones they play with, might
know a bit of C or Java or something like that, but when it comes to
thinking abstractly they fail miserably. I've had to actually sit and
explain verbally step by step what an intern has to do to solve a
problem they're working on because I can't just give them hints or
whatever. Usually I can visually debug their code [without seeing it
run] and I get in a weird place where I'd rather withhold the answer
so they learn but also we gotta get stuff done and it's a waste of
time.

Largely it comes from experience, after you've tackled some 100s of
different comp.sci problems you start to develop an ability to break
down a task into smaller tasks, to the point where the tasks are
directly expressible with your language of choice. It's not a skill
that's taught in most schools, and really if you want to be good at it
you need to have experience.

So my suggestion to you is this:

Write a lot of programs. Not just programs that are new but things
that have already been solved. The point isn't to immediately
revolutionize the world, the point is to get caught up in your
experience so that when you tackle new problems you're capable of
organizing a thought.

If you're not willing to write 100s of programs that nobody cares
about in an attempt to learn how to problem solve and think
abstractly, then you're not really willing to be a professional
developer later on. (basically, set aside ego for a bit and work on
your skills)

Should point out this applies to most any other profession. You think
Mozart first pieces were published? No. You think a great athlete
starts at the pro level? etc...

Tom
 
M

Malcolm McLean

I've just finished my book on c and i'm wondering what do I do now?
I know about data structures, algorithms etc. but where do I go now to
advance my learning and become a professional?
You know C, and you know something about data structures and
algorithms. However you will have only scratched the surface of these
subjects.

I wrote Basic Algorithms just for this situation - the idea was that
it would be a introduction to algorithms for someone who had completed
a basic C book or course and wanted to know what to to next. I used to
be a video games programmer, so it has quite a heavy graphics bias,
but it covers compression, mathematical routines, parsing, and the
like.

(It's not the only good intermediate stage book, of course).
 
C

Chad

Hey,
I've just finished my book on c and i'm wondering what do I do now?
I know about data structures, algorithms etc. but where do I go now to
advance my learning and become a professional?
Thanking you in advance.

Being a good software developer is a multi faceted job but mostly it
breaks down to

1.  Know about computers (how they work internally, how the pieces fit
together, etc)
2.  Know about languages (not specifically the syntaxes but that's a
good start, but also the process from source code to executing code,
you really ought to be able to switch from one language to another in
most cases)
3.  Be able to think in abstracts.

#3 being very very important.  I've worked with a few interns that
might know about technology, have fancy phones they play with, might
know a bit of C or Java or something like that, but when it comes to
thinking abstractly they fail miserably.  I've had to actually sit and
explain verbally step by step what an intern has to do to solve a
problem they're working on because I can't just give them hints or
whatever.  Usually I can visually debug their code [without seeing it
run] and I get in a weird place where I'd rather withhold the answer
so they learn but also we gotta get stuff done and it's a waste of
time.

My friend Dan, who is software engineer at Google, also says that
being able to think abstractly is really important.
 
J

James Waldby

.
Write a lot of programs. Not just programs that are new but things that
have already been solved. The point isn't to immediately revolutionize
the world, the point is to get caught up in your experience so that when
you tackle new problems you're capable of organizing a thought.

If you're not willing to write 100s of programs that nobody cares about
in an attempt to learn how to problem solve and think abstractly, then
you're not really willing to be a professional developer later on.
(basically, set aside ego for a bit and work on your skills)

Should point out this applies to most any other profession. You think
Mozart first pieces were published? No. [...]

While I agree with the idea of writing lots of programs [including
rewriting some of them several different ways] I disagree with your
assertion that Mozart's first pieces were not published. See eg
<http://en.wikipedia.org/wiki/Violin_Sonatas,_KV_6-9_(Mozart)>
which in part says, "Mozart's first four sonatas for keyboard and
violin* ... were composed by a budding Mozart between 1762 and 1764.**
They encompass several of Mozart's firsts as a composer: for example,
his first works incorporating the violin, his first works with more
than a single instrument, his first works in more than one movement
and his first works in sonata form."

* KV 6-9, see <http://en.wikipedia.org/wiki/Köchel-Verzeichnis>,
where half a dozen 1761 compositions also are listed
** when he was 6 to 8 years old
 
N

Nick Keighley

Agreed about #3.  It's amazing how many time you try to "teach someone how
to fish" who just wants the fish handed to them.

X: is there a way to generate a cross reference listing?
N: I think so, yes. I'll have a quick look.
<pause>
N: ah yes, its the "-whatever" option. Here's an example that I've run
on program A.
X: oh yes. But I wanted it run on program B.
N: ok. Just modify my example.
X: I think cross references are really useful.
N: oh yes?
X: we used them all the time at my last place.
N: I've never found much use for 'em. I use grep. But if you want a
cross-reference just modify my example.

X never did generate the cross-reference for program B
 
J

John Kelly

Hey,
I've just finished my book on c and i'm wondering what do I do now?
I know about data structures, algorithms etc. but where do I go now to
advance my learning and become a professional?
Thanking you in advance.

http://www.ebook3000.com/

http://www.computer-books.us/c.php

http://www.e-booksdirectory.com/

http://ebookw.net/

Just to name a few ebook sites. You can find many others.

Some, like the last one, require registration before you can view the
download links. But it's easy.

On a site such as that, some people may wonder about copyrights, but
that doesn't stop Amazon from advertising there. Draw your own moral
conclusions.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,954
Messages
2,570,114
Members
46,702
Latest member
VernitaGow

Latest Threads

Top