New Programmer

S

Shidash

Hello,
I am a fourteen year old that is learning more about programming. I am
not really a new programmer but I am a beginner in the programming
world. I have been programming since I was ten and recently I have
started using Java. Before I was using C/C++ mainly but I am going to
have to use Java for a class that I am taking this summer and most of
those afterward as the classes at my school are Java based. I have
some experience with Java but not a lot. I will be taking Introduction
to Computer Science Two this summer so I need to practice.

As for previous experience, I have lots of experience with web design
and the languages that go along with it such as html, CSS, PHP, etc. I
help out with web design and finding bugs for the MMO Furcadia. I have
also worked on my own in C/C++.

Someday I hope to work with programming in human computer interaction.
I have a specific interest in virtual reality and its applications as
well as its roots. In addition to looking at modern developments I
like to look back at the history of alternate realities. One of the
most famous examples that I have noticed is Plato's Cave. In virtual
reality we are essentially trying to create something like Plato's
Cave, and I mean the Cave, not the Good or anything above. We are
trying to create realistic sensory experiences that are augmented by
the imagination. Sorry, that got a bit away from me there. My most
recent research project :).

Anyways, I am still a beginner and fairly ignorant but I am eager to
learn more. If any of you have tips on how to progress they are
welcome. I am currently reading books on programming, using Project
Euler, and creating other programs of my own. Thanks.
 
S

Shidash

Shidash wrote:

...


You are doing most of the right things, but you may benefit from adding
collaboration and teaching.

In industry, and in many college courses, programming is a
collaborative, social activity. Most of the interesting projects are too
large for one programmer. There is some research indicating that two
programmers working together at the same screen produce better code
faster than if they worked separately. Pair programming improves the eye
and brain to finger ratio.

Also, trying to find the right words to explain something to someone
else can help set it in your own mind. That is one of the reasons why I
participate in this newsgroup. Between having started early on
programming, and doing some preparation for Java, you may find you are
ahead of some of your peers in your classes.

Patricia

Thanks :). That sounds fairly interesting... I never knew about that.
I have done some minor collaboration but nothing too major. I am
actually skipping the first class that people usually take so it is
crucial that I be ahead in order to keep up. Anyways, I look forward
to participating in this group. Apologies ahead of time if I ask too
many basic questions at first.
 
D

Daniel Pitts

Shidash said:
Hello,
I am a fourteen year old that is learning more about programming. I am
not really a new programmer but I am a beginner in the programming
world. I have been programming since I was ten and recently I have
started using Java. Before I was using C/C++ mainly but I am going to
have to use Java for a class that I am taking this summer and most of
those afterward as the classes at my school are Java based. I have
some experience with Java but not a lot. I will be taking Introduction
to Computer Science Two this summer so I need to practice.

As for previous experience, I have lots of experience with web design
and the languages that go along with it such as html, CSS, PHP, etc. I
help out with web design and finding bugs for the MMO Furcadia. I have
also worked on my own in C/C++.

Someday I hope to work with programming in human computer interaction.
I have a specific interest in virtual reality and its applications as
well as its roots. In addition to looking at modern developments I
like to look back at the history of alternate realities. One of the
most famous examples that I have noticed is Plato's Cave. In virtual
reality we are essentially trying to create something like Plato's
Cave, and I mean the Cave, not the Good or anything above. We are
trying to create realistic sensory experiences that are augmented by
the imagination. Sorry, that got a bit away from me there. My most
recent research project :).

Anyways, I am still a beginner and fairly ignorant but I am eager to
learn more. If any of you have tips on how to progress they are
welcome. I am currently reading books on programming, using Project
Euler, and creating other programs of my own. Thanks.

Wow, you write much better than that average 14 year old. Props to you.
Also, you seem to have good humility and introspection. I mention
this, because I started programming when I as 8, and by the time I was
14, I was conceited, and thought I know all there was about programming
:). I've since learned how wrong I was, but it seems like you gained
that wisdom slightly earlier than I did :)

My biggest tip to you is, learn all levels of software design. Learning
different languages is one part of programming, and it is useful. You
also need to learn algorithms and data-structures. Also, learning
"Patterns" is good. Also, keep working on your own projects. Have a
place to experiment with ideas, concepts, and systems. Don't be afraid
to take a month on a "nonsense" project, just to test out a system design.

Learn at least a little about Functional programming. Learn at least a
little about Relational systems. Learn about Object Oriented design,
and Aspect Oriented programming. Learn (by practice) when it is good to
apply any or all of those concepts (or any other I missed). The easiest
way to become "expert" in a field is to be in that field for a long
time. Learn to trust your intuition, and learn to back up your
intuition with facts.

One of the biggest challenges I faced was learning the proper level of
abstraction. Sometimes, it is better to create an Age class, than to
use an "int age" field. Sometimes it isn't. Again, that comes with
experience and intuition.

Read.
Is this starting to sound like that "Sunscreen" song yet? (-;

Read books on programming, software design, mathematics, etc... Learn a
little about a lot, and a lot about as much as you can. If you have an
area of focus, make sure you read a lot about it, without neglecting
areas that don't interest you as much.

Learn one set of tools well. For Java, I suggest learning Ant, SVN, and
an IDE (such as Eclipse, NetBeans, IntelliJ IDEA, etc...)

Read about concurrent programming, aka multi-threaded programming. Too
many beginner-to-intermediate programmers think it is a black art. It
is not, but it requires strict reasoning.

Well, hopefully I've given you a lot to chew on. Don't try to take it
all at once :) Build up your experience in bite-sized pieces. A good
foundation is better than a beautiful 10th floor.

Good luck to you,
Daniel.

P.S. You might also start a blog to keep track of your experiments, and
share your results with others.
 
D

Daniel Pitts

Shidash said:
Thanks :). That sounds fairly interesting... I never knew about that.
I have done some minor collaboration but nothing too major. I am
actually skipping the first class that people usually take so it is
crucial that I be ahead in order to keep up. Anyways, I look forward
to participating in this group. Apologies ahead of time if I ask too
many basic questions at first.
No need to apologize. We get a lot of basic questions. There are only a
few things that we ask:
1. Use proper netiquette for posting (you have so far)
2. Use an SSCCE where appropriate <http://sscce.org/>
3. Use your favorite search engine first. If you ask a truly basic
question, we're likely to respond with a Google search URL.
4. Read the JavaDocs first. It often answers your question.
5. If it is homework, state it upfront, and show what you've tried,
in detail. We have no problem helping with homework, but most of us have
already done our homework, and don't want to do yours for you.
6. If you post to multiple comp.lang.java.* newsgroups, we prefer
cross-posting over multi-posting, and set a follow-up. (If you don't
know those terms, search for it).

I also suggest subscribing to comp.programming, comp.object, and any
other interest-specific newsgroup. They may have different expectations
of netiquette, so look for their FAQ.
 
S

Shidash

Kid, if you're doing all that at age fourteen, then you're not going to
have any problems. I wish the developers I hire were that motivated...
Send me your resume in five or six years :)

Seriously, Patricia is right. One of the things that distinguishes great
programmers is the ability to communicate. Strange, but it's not the
programming class but the English class that will put you over the top.
Learn to write well. Good writing requires and motivates clear thinking.

So there is some use for my writing in this field :p. My dad is an
author and I was taught writing skills from a young age. I have always
loved to write but programming appeals to me more. Writing is a fall
back career and I may be lucky enough to write some books on the side
if I have time. Time... there is so little time and I am always in a
rush.

I go to a high school where I can take college classes at a major
university and I have it set out so I can finish my bachelors in
computer science a year after I graduate from high school. I am hoping
to get involved in a research internship ASAP but one of the people in
my school is fighting it because I am so young. I do know that I will
have an internship at least by the time I am 16 but I don't know about
this year or next. Working on a research project should also help with
the communication aspect as will my continued involvement programming
for a game (sometimes we have to collaborate to find bugs or get some
code working, this has been my main experience with communication
around programming). Plus, my time here will help, especially if I can
learn enough to start helping other people.

I just started exploring Usenet so I am looking for interesting groups
to join. Do you know of any other good programming groups? I would
like to have a place to discuss most of the languages that I work
with. I may take a stab at writing some programs later today but right
now I have to go off to study for a test.
 
T

Tom Anderson

I go to a high school where I can take college classes at a major
university and I have it set out so I can finish my bachelors in
computer science a year after I graduate from high school.

Is that a good idea? I really enjoyed university; it would have been a
real shame to only spend a year there. It's not just about learning
academic knowledge (most of what you learn as an undergraduate turns out
to be useless anyway), it's about starting to live your own life, meeting
interesting people, and, frankly, having fun. Not that work can't be fun,
but at university you have a lot of time to pursue whatever interests you,
and very little responsibility to actually get things done (not none, but
less than in a real job).

tom
 
T

Tom Anderson

If any of you have tips on how to progress they are welcome.

1. Write code
2. Talk to people about writing code

I think those are the most important things, by far. There are also some
good books that you could read, but they're less important, and people
will suggest those as and when they're relevant.

tom
 
S

Shidash

Is that a good idea? I really enjoyed university; it would have been a
real shame to only spend a year there. It's not just about learning
academic knowledge (most of what you learn as an undergraduate turns out
to be useless anyway), it's about starting to live your own life, meeting
interesting people, and, frankly, having fun. Not that work can't be fun,
but at university you have a lot of time to pursue whatever interests you,
and very little responsibility to actually get things done (not none, but
less than in a real job).

tom

I get a lot of that experience in high school. Life is so short and I
don't need to spend 8 years doing the same things when I can spend 5
and get where I need to be while having a similar experience. Plus I
want to get my masters after that so while it will be different, I
will still be on campus.
 
J

Joshua Cranmer

Shidash said:
Anyways, I am still a beginner and fairly ignorant but I am eager to
learn more. If any of you have tips on how to progress they are
welcome. I am currently reading books on programming, using Project
Euler, and creating other programs of my own. Thanks.

Some recommendations:
1. Get involved in writing patches for an open-source project. Judging
by your description, it sounds like you should have more than enough
free time to really get involved. The programming language doesn't
really matter, since the most important skills to get out of programming
are language-agnostic.

2. Get some experience in multiple programming languages.

3. Don't just study CS. Since you affirm that you want to do
human-computer interaction, I think at least minoring in psychology in
college, if not majoring as well, would be helpful.

4. Feel free to lurk and answer questions in programming newsgroups or
other forums. It's surprising how much you learn if you go to research
an answer to a seemingly simple question.
 
R

Roedy Green

Anyways, I am still a beginner and fairly ignorant but I am eager to
learn more. If any of you have tips on how to progress they are
welcome. I am currently reading books on programming, using Project
Euler, and creating other programs of my own. Thanks.

See http://mindprod.com/jgloss/gettingstarted.html to see if you
overlooked anything.

Then check out http://mindprod.com/project/projects.html for suggested
projects. Start with easy ones, and work up.
--
Roedy Green Canadian Mind Products
http://mindprod.com

"Learning is not compulsory... neither is survival."
~ Dr. W. (William) Edwards Deming (born: 1900-10-14 died: 1993-12-20 at age: 93))
 
B

blue indigo

No need to apologize. We get a lot of basic questions. There are only a
few things that we ask:
1. Use proper netiquette for posting (you have so far)
2. Use an SSCCE where appropriate <http://sscce.org/>
3. Use your favorite search engine first. If you ask a truly basic
question, we're likely to respond with a Google search URL.
4. Read the JavaDocs first. It often answers your question.
5. If it is homework, state it upfront, and show what you've tried,
in detail. We have no problem helping with homework, but most of us have
already done our homework, and don't want to do yours for you.
6. If you post to multiple comp.lang.java.* newsgroups, we prefer
cross-posting over multi-posting, and set a follow-up. (If you don't
know those terms, search for it).

At the risk of starting another flamewar:
7. Learn emacs.
 

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,790
Messages
2,569,637
Members
45,346
Latest member
EstebanCoa

Latest Threads

Top