want to begin C

P

pandit

I started to learn C++ from my friend's book, C++ Primer. in the
beginning it went good but after i finished 5 chapters it became
complicated. C++ seems like a language with too many features and
functions and right now it seems too complicated and bloated for my
brain. i just want to become a Hacker and no other special intentions
for learning a language. i use BLAG Linux at my home computer (as
advised in "How to Become a Hacker" by Eric S. Raymond).

C seems like an essential language of Hacking and searching the
archives tells me K&R2 is the book to go. i found the mentioning of
K.N. King too but can't find it in on any online Indian book store.
anyway K&R2 is pretty cheap for a poor guy like me (just 100 rupees)
and i am not a beginning programmer since i have learnt some C++
already.

any advice before i start to walk on the path of a Hacker.

[NOTE: the views i expressed on C++ are purely my personal]
 
S

santosh

pandit said:
I started to learn C++ from my friend's book, C++ Primer. in the
beginning it went good but after i finished 5 chapters it became
complicated. C++ seems like a language with too many features and
functions and right now it seems too complicated and bloated for my
brain. i just want to become a Hacker and no other special intentions
for learning a language. i use BLAG Linux at my home computer (as
advised in "How to Become a Hacker" by Eric S. Raymond).

Hackers tend to think independently, not ape the advice of someone else.
C seems like an essential language of Hacking and searching the
archives tells me K&R2 is the book to go. i found the mentioning of
K.N. King too but can't find it in on any online Indian book store.
anyway K&R2 is pretty cheap for a poor guy like me (just 100 rupees)
and i am not a beginning programmer since i have learnt some C++
already.

any advice before i start to walk on the path of a Hacker.

Becoming skilled in programming and system administration is undoubtedly
tough and a long road. Take it one step at a time. As you said, C is an
ubiquitous language used at the system level, and K&R2 is an excellent
place to start. I also suggest learning at least shell scripting and Perl,
since these two are used all over the place in UNIX type systems. After
K&R, there are more advanced books like C Unleashed, C Interfaces and
Implementations etc. Concentrate on basic algorithms and the art of
decomposing a complex problem into simple, semi-independent steps. Learning
an assembler language is always very useful to get a machine level
perspective. Also don't miss reading books like Software Engineering by
Sommerville, Code Complete by McConnell and of course The Art of Computer
Programming by Knuth.

Programming is a never ending journey since the, even as you learn more, the
field advances. As far as languages go, apart from C, as I said earlier,
shell, Perl, assembler and Python are good choices. Unless you're forced
to, avoid proprietary languages like C#, VB etc. They'll just waste your
time.

The best advice is to take everything a step at a time and think about what
you're learning. It's also critical to practise or try each concept, with
example programs or pseudo-code, before moving on.
 
R

Richard Bos

pandit said:
any advice before i start to walk on the path of a Hacker.

Consider this: the more you look for the Path, the further you stray
from it.

Richard
 
I

Ivar Rosquist

I started to learn C++ from my friend's book, C++ Primer. in the
beginning it went good but after i finished 5 chapters it became
complicated. C++ seems like a language with too many features and
functions and right now it seems too complicated and bloated for my
brain.

No kidding! To steal a metaphor, if bloatedness were a brick, C++
would be the Great Wall of China.
 
C

Clever Monkey

Ivar said:
No kidding! To steal a metaphor, if bloatedness were a brick, C++
would be the Great Wall of China.
I'm not huge fan of the language (mostly because I've had to maintain
code created during the great March To Standardization) but it was
created to solve a problem that many languages of the day were poor at
doing.

That is, C++ was intended to solve completely different problems than C
currently does, and that "bloat" we are talking about is more about
larger-scale application maintenance using standard frameworks.

Not a finely tuned hacker tool, but it was never intended as such.
 
S

Serve Lau

Richard Bos said:
Consider this: the more you look for the Path, the further you stray
from it.

I was thinking something like that as well but oh well when he doesnt go as
fast as he wishes and gets bored so be it :)
It wont hurt him learning about linux and coding
 
R

Richard

Clever Monkey said:
I'm not huge fan of the language (mostly because I've had to maintain
code created during the great March To Standardization) but it was
created to solve a problem that many languages of the day were poor at
doing.

That is, C++ was intended to solve completely different problems than
C currently does, and that "bloat" we are talking about is more about
larger-scale application maintenance using standard frameworks.

And that is exactly where C++ screws up IMO. At the end of the day
frameworks designed and developed in C++ end up having another
"language" on the language which can often be a nightmare.

I always called it the bath time test. Try printing out some C++ and
reading the code in the bath. You better to hell know the overloading
and class hierarchies and the privates/publics back to front or you will
never understand a thing.

Not a finely tuned hacker tool, but it was never intended as such.

--
 
C

Clever Monkey

Richard said:
And that is exactly where C++ screws up IMO. At the end of the day
frameworks designed and developed in C++ end up having another
"language" on the language which can often be a nightmare.

I always called it the bath time test. Try printing out some C++ and
reading the code in the bath. You better to hell know the overloading
and class hierarchies and the privates/publics back to front or you will
never understand a thing.
I good yardstick, to be sure. I hardly have enough exposure to the
language to form a real opinion, but I recall that once you got the
gestalt of what STL and/or super classes one was leveraging you stop
caring about the implementation and concentrate on local code problems,
which are easy to soak in the bath.

That is, I do at least 80% of my work in Java. To solve problems in
Java, I don't have to care about anything in java.lang, or even in most
of our components, classes or implementations. Decent code will be set
up for good code reuse and logical subclassing. For any sufficiently
large application it helps to have a tool that lets you navigate these
relationships, but I had to do this for large C apps in the past anyway.

I mean, conceptually, a pointer to a selection of structs is just as
opaque as some super-class. I find once I get an idea of what the local
code is doing with these "objects" the rest is just reading source to
find out i.) what the hell the original coder meant and, ii.) where the
actual bug might be. Both of these are bath-worthy projects!

At any rate, learning how to code, read code and debug is a hackerish
skill one can learn with any sort of toolset. C is an ideal tool to
have in one's hacker kit, but those skills are generally transferable
and re-usable.

I personally like to learn a new (artificial) language once a year, and
often deliberately choose one that is outside of my day-to-day oeuvre.
I find it helps keep me sharper.
 
A

Al Balmer

Hackers tend to think independently, not ape the advice of someone else.

That's silly. A hacker who isn't willing to learn from other people's
experience won't get very far. Maybe he should forgo reading K&R, and
posting to c.l.c., as well? If you have a particular reason not to
follow Raymond's advice, say so.
 
U

user923005

I started to learn C++ from my friend's book, C++ Primer. in the
beginning it went good but after i finished 5 chapters it became
complicated. C++ seems like a language with too many features and
functions and right now it seems too complicated and bloated for my
brain. i just want to become a Hacker and no other special intentions
for learning a language. i use BLAG Linux at my home computer (as
advised in "How to Become a Hacker" by Eric S. Raymond).

Personally, I like C++, but I think it is a difficult first computer
language to learn.
C seems like an essential language of Hacking and searching the
archives tells me K&R2 is the book to go. i found the mentioning of
K.N. King too but can't find it in on any online Indian book store.
anyway K&R2 is pretty cheap for a poor guy like me (just 100 rupees)
and i am not a beginning programmer since i have learnt some C++
already.

any advice before i start to walk on the path of a Hacker.
http://www.plethora.net/~seebs/faqs/hacker.html
http://www.ee.ryerson.ca/~elf/hack/
HTH

[NOTE: the views i expressed on C++ are purely my personal]
 

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

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,016
Latest member
TatianaCha

Latest Threads

Top