Wk02: Learning Journal
Sami Hobson
Drew Clinkenbeard
Wk02: Learning Journal
Journal Entry:
During Week 1, I completed Lab 00 and Lab 01, which introduced me to essential tools and practices in software development: IntelliJ Ultimate, Git, Java basics, and unit testing. One of the most useful takeaways from these labs was learning how to write and run unit tests in Java using a test class (RectangleTest.java). In the test file, we verified the behavior of methods defined in Rectangle.java, such as area and perimeter calculations. I learned how to create assert statements to check whether the actual output matched the expected values. This helped me recognize how important test coverage is for ensuring code correctness, especially before scaling up a project.
Using IntelliJ for the first time was initially a challenge, but I became more comfortable navigating the interface, running my code, and debugging issues. The auto complete and real-time feedback were particularly helpful when writing the unit tests.
On the Git side, I practiced essential commands like git clone to pull the starter repo, git add to stage changes, git commit -m to log snapshots of my progress, and git push to sync everything to GitHub. I also used git branch and git checkout to view and switch between branches, which gave me a better understanding of how version control systems manage parallel development. Submitting a screenshot of my local branches and making pull requests helped solidify these concepts, and I now understand how Git fits into collaborative workflows.
Although interfaces are covered more thoroughly in Week 2, I explored them briefly to prepare myself. I now understand that a Java interface is like a contract, it specifies method signatures without implementing them. This allows different classes to implement the same interface in their own way, which improves code flexibility and modularity. It’s clear how interfaces will help with scalability and reusability as our programs grow more complex.
Overall, these labs laid a strong foundation for Java development. The combination of hands-on coding, testing, and Git usage has already started shaping how I think about structuring and maintaining code. I now appreciate the value of test driven development, version control, and abstract thinking through interfaces, all of which I expect to rely on heavily in future weeks.
Comments
Post a Comment