• Log in or sign up for an account here: https://www.sythe.org/login

Java Learning Log

AfterLyfe

Forum Addict
Joined
Sep 23, 2010
Sythe Gold
0
Messages
391
Location
PA
titleeo.png

Table of contents
[1]Introduction
[2]Guides & Explanations
[3]My Log lessons 1-20
[4]My Log Lessons 21-40
[5]My Log Lessons 41-60
[6]My Log Lessons 61-Till End.
[7]Reserved for future use
[8]Reserved for future use
[9]Reserved for future use


Big thanks to SMR for making this possible.



Currently working on lessons 1-5.


[1]Introduction~

Thanks for checking out my thread!

About me
I am currently on my second semester at college for computer programming. Only problem is I don't start my programming courses till the 5th semester, so I decided to teach myself. What better language then starting with Java, being a runescape fan and botter. I am to understand Java is a complex language to learn first, but I am dedicating myself to learning it. So please support me!

What this thread is about
I have been browsing the forums for awhile and have noticed many people saying that the programming section is dying, etc. I hope to try to revive it by keeping a log of me learning how to do Java. Meanwhile maybe I will get a few more people to join my along the path, increasing the number of programmers on the site, or at least people interested in these sections. I will be trying to do 1-3 lessons a week, depending on how much school work I have for the week.

So what makes a good programmer?
An analytical thinker

Programmers need to be problem solvers. The process of programming requires that we systematically break complicated problems down, plan and implement solutions and find / eliminate small inconsistencies in code (bugs).

Analytical thinking also manifests in the ability to follow complicated logic through disparate code segments and understand it. It allows us to grasp abstract concepts such as Object Oriented methodology and design patterns and implement it in practice.
Has his priorities straight

If I would ask you to rate the following according to priority, how would you order them?

* Security
* Maintainability
* Usability
* Performance
* LOC (lines-of-code) count

Take a moment to think about that, and then consider:

1. If you picked LOC count first, you failed big time in my book. In fact, LOC optimization can often go directly against the other metrics (such as maintainability). A lower LOC count should never be a goal, only a result of careful application of well factored architecture.
2. If you picked performance first, you are probably the guy who keeps writing articles about how you should use a while loop instead of a for loop since it came out a few milliseconds faster in your benchmarks. You might be inflicted with a case of premature optimization.

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
Donald Knuth


Performance should only be good enough to satisfy the requirements of the application. Aside from caveats to well-known pitfalls (such as executing queries in each iteration of a long loop), performance optimizations should be deferred to the very last and even then should be used appropriately (profile ... profile ... profile ... optimize).

The only exception to this is if you are primarily developing performance dependent applications (such as low-level system drivers).
3. Security is on somewhat of a middle ground. Depending on the application and distribution model it can be completely useless or mission critical. It's mostly somewhere in between, and thus can't be ranked as number one.
4. Maintainability is definitely one of the most important attributes of a software application. High maintainability allows you to improve other attributes (such as performance), when it is needed.

Maintainability is the single most important factor for keeping productivity up and costs down. For a long time I strongly believed this to be the most important attribute of software design.
However ...
5. The most important attribute is usability. In the end, the worth of your application is only as much value as it delivers to the end-user.

We should always remember - software is not written to serve its developers or the systems they run on. They are written to solve problems. If those problems are not solved, then the project is a failure.

I wrote usability here as a more general term than just UI/UX effectiveness. Even a command line application or a background service has its usability factor in the sense of how well it answers a specific need.

Gets things done

In principle, it’s simple. You’re looking for people who are

1. Smart, and
2. Get things done.



Quite possibly the single most important trait in a developer. You can excel at all the previous attributes and still be a mediocre programmer if you just can't get things done. One average but productive developer could easily replace several highly talented but slowly moving developers, depending on his responsibilities.

At the end of the day you definitely want more highly-productive developers than those who are high on theory but not actual work.
Does more than "just enough"

Getting things done is important. Getting things done "the right way" is even more important.

Constantly paying off your technical debt is crucial - if you keep accruing debt by "hacking" quick fixes that work now but are not maintainable, you only create the appearance of progress. In reality, the cost of getting rid of a large technical debt could become prohibitive before you know it.

Taking the time to constantly refactor code into a more maintainable state is the best way to prevent the spiral into project oblivion.
Responsible

A person could be a very capable programmer on technical ability alone, however if he does not own up to his mistakes and does not respect deadlines he could become a liability very quickly.

Responsibility also means to know where to let go of your ego for the good of the project. We developer often high large egos as we consider ourselves experts on many things. Putting the project first is a sign of a good developer.

Good human relations

Another all-around useful trait, this one applies to programmers as well. There is some stereotype that programmers are reclusive, unsociable creatures - programmers are still people.

http://www.techfounder.net/2009/07/22/what-makes-a-good-programmer/


Supporters
1. Trey i am
2. Fate
3. The Chase
4. Gaming7
5. Treyarch

NOTICE: I AM IN COLLEGE AND I WORK IN REAL LIFE. I WILL UPDATE THIS WHEN I CAN.

Update: I got almost double recommended classes in college due to some things, I will still update once a week, but my time WILL BE TIGHT. I promise I will continue to work on this though :).

 
[2]Guides and Explanations

So if your anything like me your running into this with minimal programming experience. I do have some. My background with Java includes having a poorly taught high school course on it which I did not learn much about the language, but more of how it works, and explanations of programming languages and computers in general.

A programming language is an artificial language designed to express computations that can be performed by a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine, to express algorithms precisely, or as a mode of human communication.

http://en.wikipedia.org/wiki/Programming_language

A simpler explanation to this would be that a programming languages takes a language created by humans and turns it(compile) into computer language (binary code). This code does a predefined act as ordered by the user.


Strategies for learning programming.
For the record, we ran a poll in August 2008 asking how you learned to program. From the 4,716 readers who took the poll, 45% used a mix of various learning techniques; 35% were self taught; 20% learned in school; and only 1% were taught by a friend of family member.

Shoot from the hip

Sometimes you have no choice but to jump right in feet first into a new language with no preparation; sometimes we get so excited about a new language that we do the same thing — even when it isn’t necessary. In my experience, this is one of the worst ways to learn a language. You often end up with some bad habits that may take a long time to unlearn, and you actually spend more time learning like this than you would with a more disciplined approach.

The funny thing is the first time I tried this approach, it worked out fairly well. The HTML 2 spec had just come out, and I was learning HTML. It was a different world then; HTML could not do much, and it was fairly easy to deal with provided you had low expectations.

My next attempt with this technique did not work out as well. I was running an online store, and the software was written in Perl. I learned Perl’s syntax in about 30 minutes, but it took approximately six months of intense work later on to feel like I had learned it well enough to live without having the documentation open in another window all day long. Luckily for me, I did not have to do much in the system.

This experience set the tone for years to come. I convinced myself that 30 minutes to learn syntax was “good enough,” and any learning beyond that amount of time was just memorization that could be replaced by handy documentation. Later on, I discovered that what made me so successful in Perl (and unsuccessful in Java) was that I was doing enough work with it to learn the paradigm of the language — its strengths, weaknesses, etc. I made a lot of messes until I gained that kind of knowledge.

Learn with human help

I learned my first programming languages — BASIC, COBOL, Scheme, and Pascal — in high school from an instructor. We were gently eased into a language, taking baby steps and doing projects of increasing complexity, until we had enough knowledge to write a full-fledged application from top to bottom.

This was a great way to learn, particularly for the first few languages because those languages shaped my thinking for a while. Unfortunately, there are three issues with it for a working developer:

* It might take longer than you have to learn the language.
* No school or facility offers a class to teach just one programming language.
* It might be too expensive.

If you have a good instructor and a good workbook of appropriate exercises, this is the best way to learn your first few languages, but it is unrealistic to use it once your formal education is complete. (Maybe this is a possible business idea for a reader?)

Study the language before touching it

Another strategy I’ve used is to study a language in-depth before trying to write any code in it. You can watch online tutorials, read books, study source code, or whatever strikes your fancy, but no matter what, the learning should be at least partially structured (such as reading a quality book). The idea is to seed your mind with a lot of ideas so that when you start to write code (while you may not consciously remember everything you learned), the concepts are kicking around deep down and helping you out.

A technique I haven’t tried but I know people who have is to essentially craft your own learning program. By putting together a disciplined program for yourself instead of doing research first and then trying to write code, you can create appropriate “assignments” for yourself during natural breakpoints in your study session.

I used this technique the first time I had to learn a language on my own. It was my college summer break, and I had the good sense to contact the CS department to find out what language the Data Structures class was in instead of assuming that it was in Pascal like the previous class. The Data Structures class used C, and students were responsible for learning C on their own. I bought a book that said it would walk me through learning C (I seem to recall the phrase “24 hours” in the title), and I read it about a month before classes began.

While the language is fairly simple, C requires a ton of work to use it safely and well. I didn’t touch C until the second week of class, but when I did, I understood it enough to do everything necessary. I breezed through the class and watched most of my classmates struggle; their problems weren’t with the concepts taught in class but rather with trying to learn C with the “shoot from the hip” strategy.

I’m currently using this strategy to learn Ruby (I know… I’ve been saying this for nearly six months). I still have not touched any code, but I’m almost finished reading a book on the subject. And you know what? I feel like I already know Ruby better than C# and probably VB.NET. My knowledge of VB.NET and C# were learned without any discipline or rigor, and there are gaps in my knowledge. I see things all of the time that have me scratching my head because I know enough to do my daily work, but my knowledge probably only entails a small subset of the languages’ capabilities. I know that I am not as good in those languages as I could be because of these gaps.


http://blogs.techrepublic.com.com/programming-and-development/?p=1159


The guides I will be using to learn java begins here
http://www.youtube.com/watch?v=Hl-zzrqQoSE

and ends here
http://www.youtube.com/watch?v=38UOAo1c_QA


87 Tutorials all together. I will do my best to post in a informative way and keep track of my progress learning. PLEASE do give advice and support me :).
 
[3]My Log lessons 1-20
Lesson one - three is program use based, please watch the tutorials for it.
1​
Tutorial one is all about getting a program you need to use a java compiler. A compiler allows you to take code you can understand and compile it for a way for the computer to understand. You need Java JDK, which is located here.

http://www.oracle.com/technetwork/java/javase/downloads/index.html


Download the JDK.

It also teaches you how to set up your java under your computer environment options. You need your computer to look for the java applat to compile the code.

http://www.youtube.com/watch?v=Hl-zzrqQoSE


2​
http://www.youtube.com/watch?v=5u8rFbpdvds

This tutorial is all about learning how to run a simple program. The first thing to always remember to do with a java file is save it as a
yourtexthere.java

Open notepad and lets start.

Code:
class apples{

public static void main(String args[])

System.out.println("hello youtube")

}

class is a necessary thing to define all java files. you must have it lower case, then define the name which would be apples in this case. THIS MUST BE YOUR FILE NAME

Within the class goes the method, which is, to my understanding, the brain of the code.


Using command prompt compile the program. When you compile a java it changes it to a .class so your computer can understand it.

Watch the tutorial for a good explained way how to do this.


3​
http://www.youtube.com/watch?v=CE8UIbb_4iM

This tutorial is all about IDE which is a compiler which will help you make your code. It will help find your problems and such. The IDE that is recommended here is Eclipse.

Eclipse can be found here www.eclipse.org <- follow the tutorial to download and set it up.


4​
http://www.youtube.com/watch?v=SHIT5VkNrCg

The first true program. It is the normal useless "Hello world" app that tons of guides start off with.

Code:
class apples{ [COLOR="Cyan"]<----- this declares the class name, necessary in all apps[/COLOR]

	public static void main(String args[]){ [COLOR="Cyan"]<----- Not yet explained on what it does but is necessary. Its declaring it as its main method.[/COLOR]
	
	System.out.println("Hello SYTHE!"); [COLOR="Cyan"]<---- println is a built in method that will display a line. System is declaring for it to appear on your system. [/COLOR]
	
	}
} [COLOR="Cyan"]<---- close brackets[/COLOR]


Key Points
-Everything in java needs a class
-Putting instructions in the class is called a method
-Needs the method main, shows the program where to start
 
Looks good so far. I self-taught myself Java before I took my programming course in college and it made the classes so damn easy.

I support you!!
 
I support <3

Very good Log, cant wait to see some moar ;)

Looks good so far. I self-taught myself Java before I took my programming course in college and it made the classes so damn easy.

I support you!!

Thanks both of you, please check in at times and give advice as needed. Please let others know of this as well!
 
Support! I'm also trying to learn a little bit about Java, because I have a course on it coming up!
 
Support! I'm also trying to learn a little bit about Java, because I have a course on it coming up!

Thats half of my reason also :).

If you ever want help just look here and go ahead and add me if you want to talk :D
 
Support.

I am using these exact tutorials to learn java as well ^^.

Currently on tutorial 17...
 
Thank you everyone :). School starts tomorrow, hoping to get a tutorial done or two. Been really busy!
 
Hey man I support you and everything and I'm not trying to be a dick or anything but you have to be careful with "thenewboston" tutorials.

He is known to overlook some important details as well as being blatantly incorrect at times.

He may teach you SOME things about programming, but seriously, don't hang off his words.

I would at least advise you to look at the official libraries for anything you might not understand after being introduced to it in a youtube video.
 
Runescape Gamblingrunescape gambling
Back
Top