tuzgai
Registration date:
Post count: 32
My name's Stuart and this is my personal blog, I'll be recording what I learn at the Software Guild here.
All Posts
Edit Profile

Posts from this user

Writing Warmup: Normalization

tuzgai posted at
Database normalization is the process of organizing a database into simple structures that take full advantage of the relational database model. The goal of normalization is to improve organization and memory use by avoiding repeated data in rows and instead using relationships to store that repeated data just once. Normalization is frequently defined in terms of 'normal forms', where each level of normalization adds new restrictions on how tables are laid out. In our class we are sticking to the second or third normal form - where in layman's terms tables are arranged by concern similarly to objects in Java. However, normal forms go as high as 6 levels - at the sixth level each table pretty much holds just one piece of data per row along with foreign keys to its various relationships. Full normalization is not always ideal! While it can be memory-efficient, there is a tradeoff in processing overhead for the complex queries needed to pull data out of it. From what I've seen, fully normalized databases are also not easy to read or use with handwritten scripts. There is also the concept of 'de-normalization', where a database used for running reports will load and reorganize the data from the safe database into a form structured for fast queries to get the best of both worlds. Permalink

Week 7: Things move fast!

tuzgai posted at

Time's been flying and I haven't had a chance to post an update in a bit. Last week we covered SQL and the conceptual foundations of relational databases. A bit later if I have a chance I'll do some writing posts on ACID and how relational databases work. The big takeaway is that your programs are dramatically more userful and easy to write when you don't have to roll your own data storage. It was exciting material to learn, while obviously this site has a small database running behind it, I now feel much more prepared to add more complex features like tags or user groups.

This week we're covering JDBC - integrating database access into our Java code. So far it's pretty straightforward and we've learned some nice Spring Boot features to make wiring our dependencies together much more simple. (I imagine, I'm still having a little trouble getting my updated vending machine to run.)

In other news, Monday was the final cutoff for the first half of the course's projects. So far it looks like we only lost one person. It's disappointing - he was a cool guy and just a little behind conceptually. I'm sure he'll do fine when he retakes in the spring.

Now that the 'getting a job' side of the program has spun up, I'm working on cleaning up my LinkedIn, resume, and GitHub. It's kind of fun, I feel much more confident about pitching my skills now than I did a few weeks ago.

Last edited Permalink

Writing Warmup: Version Control and Git

tuzgai posted at

Prompt: Describe Git and version control and why we are using it.

As the size and complexity of projects increases and teams grow to more than one member, version control becomes an important concept. There are a variety of major benefits of version control:

- Changes can be rolled back.

- Multiple team members can work on different elements of the project and defer integrating their changes until they're done.

- Major changes can be separated into branches so that development of new features can continue while the current release is also supported with bugfixes.

Git is a specific version control software package that supports tracking the changes to your codebase, branches, pull requests, and a variety of other useful features to facilitate teams of varying sizes to contribute to a project. While Git initially took off due to its use in the development of the Linux kernel, a variety of sites such as GItHub, GitLab and BItBucket have facilitated public Git repositories.

This is very useful for open source projects and web-based tools have made contributing much simpler than Git's core command line interface. Not to mention, they have become a sort of 'social media for developers' that allow developers to publicize their work and solicit help. In our class, we use a Git repository hosted through BitBucket to submit and revise assignments.

Last edited Permalink

End of week 5

tuzgai posted at

I'm home sick today so I thought I'd take a few minutes to post an update. This week was 100% a working week on the Java 'mastery project'. Essentially we're learned all the Java we're going to in this class, so we spent the week demonstrating our skills and building another console-based CRUD app. This time the project was to build an order tracker for a flooring company - there was some basic calculations and validation for each order as well as a little complexity in managing the files in which orders were saved.

I'm still pretty dramatically ahead of the rest of the class. As of Thursday's stand-up, all but maybe 3-4 students had spent all their time catching up from the vending machine project that was due the 4th, while I finished the mastery project Thursday. It took me a solid 20 hours to put together so I hope they're able to make the time to finish before its final deadline of 3/1.

I'm looking forward to getting some exposure to SQL next week along with the start of the job-search track. We'll be doing a resume workshop next week and after that I'll probably start sending out applications. Now it's sort of a 4 day weekend for me! Maybe if I'm feeling better later I'll put in some time improving this blog site.

Last edited Permalink

Text I liked from the mastery assignment

tuzgai posted at
"We have covered all of the technical skills needed to complete this assignment. It is your job to think critically about this project, ask clarifying questions where requirements and features are not clear, and come up with a solid design and game plan before you begin coding. It is essential to your success that you don’t just “throw code” at the problem and hope that something sticks. We want you to use the background skills and techniques covered so far to synthesize a solution to this problem." Exciting! Permalink
Newer Posts Older Posts