• Post Reply Bookmark Topic Watch Topic
  • New Topic

efficient studying  RSS feed

 
Abigail Decan
Ranch Hand
Posts: 65
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
what is the best way to study a programming language?
for example, should i type in the example codes in the tutorials?
or would copy and pasting fine?

should i do this for every single example i see?

i would like some advice.

thanks.


also, how can i learn more classes and methods in them?
there's just so much, and i feel that my course material is insufficient for competency in java.
 
fred rosenberger
lowercase baba
Bartender
Posts: 12563
49
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I would say yes, type some of them in...you will inevitably make typos, which leads to debugging, which is a good skill to start developing.

Every example? no. But after you type some in, start making changes. Experiment. Play.

and yes, your course material will be insufficient. But to really become competent, what you need is experience. Some studies say you need 10,000 hours of practice with something before you are really proficient. That translates to years of full time work with <whatever> it is - java, painting, juggling, writing...
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Abigail Decan wrote:what is the best way to study a programming language?

Ooof. There are probably a thousand answers to that question - and none of them will be wrong.

or would copy and pasting fine?

Typing: yes. Copy and paste: NO.

C&P runs directly against the whole idea of programming, which is to write something once, and only once. That's why you see all those lessons and tutorials - and posts here - telling you to write methods (and classes), not just code.

Like Fred said, play is also really important. You need to try things and make mistakes - lots of them - before you can learn. And it needs to be - and stay - fun; otherwise you won't get past the times when it's frustrating (and, believe me, it IS).
An old maxim used to be that you could could always tell the programmers by the stripes on their forehead; but that was back in the days of glass screen terminals. You guys have those soft flat things now.

Luckily, those times are offset by the huge satisfaction that comes from getting things right because, believe me, there's no feeling like it.

HIH

Winston
 
Abigail Decan
Ranch Hand
Posts: 65
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks for the replies

right now there's not much playing for me right now..
programming is pretty much a frustrating course assignment for me because it takes me so long to finish an assignment :/
but i guess i need to be patient.
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Abigail Decan wrote:programming is pretty much a frustrating course assignment for me because it takes me so long to finish an assignment :/
but i guess i need to be patient.

That, and follow the Boy Scout motto: "Be prepared".

Programs don't just write themselves; you need a plan. Therefore, you shouldn't just sit down and start coding, and expect solutions to simply materialise.

It probably sounds like we bang on about this, but in order to solve a problem, you need to understand it - and understanding almost never comes from coding. Coding should simply be a translation of what you already know.

Therefore, the programmer's best tools are (oddly enough) paper and pencil. Draw diagrams, try things out, write descriptions, think about when things might go wrong - and do it all before you start coding.

Unfortunately, it's not what a lot of beginners want to hear because they're just dying to write some code and see it work; but try and think of it this way: If someone asked you to make a table, or a cabinet, would you simply get some wood and start banging nails in?

Coding is the "banging nails" part, so make sure you have a plan to work from before you start.

HIH

Winston
 
Abigail Decan
Ranch Hand
Posts: 65
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thank you for all the advice.

in terms of practicing, what resources do you recommend?
i mean, doing just the assignments is not going to make me familiar enough with the language.
should i try looking at online course materials from other schools?
after i finish covering the topics for these courses, how should i proceed?

thanks again.
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Abigail Decan wrote:thank you for all the advice.

You're most welcome.

in terms of practicing, what resources do you recommend?

Nothing works like doing. Think of something that YOU would like to do.
Just make sure you start simple - you're not going to be writing chat-rooms or blog sites straight out of the blocks, so stick to things you can do with what you know...and maybe just a leetle bit extra.

It's how we learn most things: get familiar, get cocky, get burned, go back to what you know (hopefully, having learned from the experience), and try again. Two steps forward, one step back...and as you get more experienced, that "one step back" should happen less and less. Not that it ever goes away completely. I've been at this game 37 years, and I'm currently going through a major "step back" - and it's NOT fun.

i mean, doing just the assignments is not going to make me familiar enough with the language.
should i try looking at online course materials from other schools?

Maybe. But like I say, find some thing YOU want to do that you think you can achieve. Feel free to post ideas here: We'll soon tell you if it's beyond you - or at least we'll give you some idea where to start.

And that's the main business of programming - breaking down a problem and tackling it one piece at a time. And, like most things, sometimes it's boring. You want to get onto the 'exciting' stuff, but you can't because you've got all this "washing up" to do. But it's washing-up, and it has to be done. It's the nature of the beast.

after i finish covering the topics for these courses, how should i proceed?

Ooof. That's a toughie.
First question: Do you like it?
Programming is HARD. Maybe not parade-ground, drill-sergeant hard, but you need to like it; otherwise you'll find something else that's easier (or that you like more) during your 10 years to becoming a good one.

HIH

Winston
 
Campbell Ritchie
Marshal
Posts: 56541
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston Gutkowski wrote: . . . Programming is HARD. Maybe not parade-ground, drill-sergeant hard, . . .
Why do you say parade‑ground stuff is hard? When square‑bashing, the squaddies simply have to do what Sarge tells them. When programming, you have to think as well. That makes it harder.
 
Abigail Decan
Ranch Hand
Posts: 65
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks all for the reponses again.
i have another thing to ask now; when i encounter something i don't know, i should first google or read the documentation, right?
if i don't find the answer, what is a good timing to turn to my tutor and ask the question?

also, asking the tutor without searching for myself first is a bad idea?
 
Charles D. Ward
Ranch Hand
Posts: 99
1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Abigail Decan wrote:thanks all for the reponses again.
i have another thing to ask now; when i encounter something i don't know, i should first google or read the documentation, right?
if i don't find the answer, what is a good timing to turn to my tutor and ask the question?


I'd say you should exhaust every resource available first. There are so many recurrent questions being asked here for example that can be answered by a quick Google search that I have no idea where do the experienced users here get the will and patience to answer over and over again. I guess they're much better persons than me because I'd simply ignore them. If people can't even do the effort of searching on Google or these very forums first, why should I waste my time answering something that has been answered tons of times already?

Abigail Decan wrote:also, asking the tutor without searching for myself first is a bad idea?


Yes. You will not have a tutor to ask forever by your side. You should be able to look for answers yourself by reading and researching.

I, for one, haven't had the need to ask something here in the forums for quite a while because by doing a search first in these very forums have cleared all my doubts. The answers are pretty much all here already on old threads.


This is just my personal opinion. It may not be shared by others.
 
Jayesh A Lalwani
Rancher
Posts: 2762
32
Eclipse IDE Spring Tomcat Server
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
One of the many meta-skills that you need to learn as a programmer is to search for information effectively. You can't keep going to your lead for every small thing. Initially, you won't be expected to find things yourself, but as you become senior, people will expect to google things for yourself. And the sooner you learn it, the better it is

Another meta-skill that you have to learn is to ask help. Your lead/PM/whatever is interested in the project meeting deadline. S/he is interested in keeping you moving. If you get stuck, they want to know about it earlier, so they can help you. The worst thing you can do to a project is tell your boss on the last day, that you were stuck for 2 weeks

Which brings us to the third meta-skill: balancing both of the above meta-skills. Unfortunately, both those skills are discongruent with each other, and you need to figure out how to walk the fine line. You don;t want to bother your boss, and show you are competent.. but at the same time you don't want to hurt the project just to protect your ego. There is no clear answer to this, and most people do it by gut feel. Usually, the way I do it is, when I see the project's deadlines might be affected, I come up with various options and go talk to my boss.

So, the dilemma that you are facing bnow is really an emulation of the dilemma that you will face when you go out there. "Should I search on my own or go ask my tutor" is the same problem as "Should I search on my own or go ask my boss" I would say, try to search on your own... but set a point at which you will give up and go to your tutor. When you go to your tutor be prepared to talk about thing that you have already done and looked at. This shows that you are putting some effort.

Charles D. Ward wrote:

I, for one, haven't had the need to ask something here in the forums for quite a while because by doing a search first in these very forums have cleared all my doubts. The answers are pretty much all here already on old threads.


This is just my personal opinion. It may not be shared by others.


Have a cow for using the forum effectively
 
Abigail Decan
Ranch Hand
Posts: 65
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
sorry for the late reply.
i've been forcing myself to research before i ask.
it sometimes is still frustrating to not get answers immediately, but i think i'm getting used to it.

i have another question now:
when you learn new methods and classes or a new language in general with a tutorial, should you take notes so you can look back later?
or is it better to just do more programming and remember stuff that way?
how much should notetaking come into learning a new language?
 
Rico Felix
Ranch Hand
Posts: 411
5
IntelliJ IDE Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
From experience note-taking should be done for programming mentally by non-stop practice. When you read a concept in a book or tutorial, you must first make sure you comprehend what you have just read. If you cannot understand on the first read, re-read until you do (repetition works to clarify and sink stuff into your brain). Then the next step is to implement what you have just understood by creating something unique based around the concept instead of re-typing some code fragment. By iterating between these two steps you will master programming concepts topic by topic (divide and conquer).
 
Abigail Decan
Ranch Hand
Posts: 65
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks, i'll definitely incorporate that
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Abigail Decan wrote:it sometimes is still frustrating to not get answers immediately, but i think i'm getting used to it.

It may be frustrating, but very little in programming (other than maybe "Hello World") actually works immediately, and doing research can actually give you the time you need to think about what you're doing. Sometimes, while you're doing it, you may even find that another solution pops into your head that completely invalidates your search, and you find yourself going: "of course, dummy, I can do it THIS way...".

But you'd probably never have got there unless you'd done the research - so don't think of it as a waste.

HIH

Winston
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!