Monday, January 4, 2010

Day 1

Today was my first day working as an Apprentice at 8thLight. I will be working under Micah Martin for the next three months, soaking up all the knowledge I can.

I am not yet sure how I want to format my posts, so the next few shall be experimental.

What I learned today:

Underlining Principles of being a Software Craftsman:

* Communication - One of the fundamental and most crucial skills required by any software developer must be communication. A software developer not only writes code that communicates to the computer his/her intentions, but also code that communicates to all other developers whom may read your code in hopes to build upon your work.
This essential duality will help to define how I will learn to become a Craftsman. While I write any software, I must constantly keep three interpreters in mind. The computer being first, because obviously if the computer can't use it, its not worth much. Myself being second, since if I can't even understand my code, it really must be pretty crappy and I wont be able to work with it later. Finally, and perhaps most importantly, I must write code that another developer can easily follow. I think this last notion is what separates and developer from a Craftsman.

General Knowledge of Language:

* Though this is rather obvious to any experienced Java developer, and used to be quite obvious to me, I had a flutter in understanding today that I do not wish to have again. In any class method there is always an implied this. before objects.

* Java Threads - when creating a thread, the right way to make a quick and simple thread is to make it Runnable. By doing so, and check me if I am wrong, you will have a default run() method that will be called when you call .start() on the thread object.

Specific Knowledge:

* Java Swing uses a pyramid structure of panels to create any frame. The main Frame is the base structure, and on it will be many panels. Each panel can have several other panels inside of it, along with text boxes or buttons and things of the like.
When there is a mouse_click event, the event is first handed to the main Frame, which then checks the x,y coors of the click and scans all of the children panels to see which of them is at the clicked coor. Then this panel scans all of its panels or other widget thingies until it finds the one at the clicked coor. This goes on until there is either a panel with no children or the click is on a button widget or something of that nature. The mouse_click event is then handled by that object in whatever manner it feels.
Limelight props are also actually panels - called PropPanels, and have a similar structure.

Other General coding goodies:

* I learned there is an enormous depth to making text box cursors. Making it show up is easy enough, but it just goes down hill from there.

Extras:

* Angelique taught me quite a bit about my taxes, Simple IRA, health care plans and so forth. Fun fun.

* Also a fair amount about domains and hosting. Bought my first domain! JustinMMartin.com Still have to get something up there though.

All in all, a successful day.

No comments:

Post a Comment