Here’s my last learning journal from Programming Fundamentals at UoPeople. After this post, I’m going to give my final thoughts on this course, and my impressions of UoPeople after studying for two terms now.
I can’t believe this is my last learning journal for this course already! For this weeks learning journal I guess I’ll discuss my studying habits and strategies that I’ve been using for this course, and how those habits are used in everything else I learn in or outside of school. I figure it’s a good topic because it addresses what I’m working on this week, as well as the past 8 weeks, providing a summary of some sorts.
Starting with what I’ve done this week, I first answered the discussion assignment after completing the reading assignment (well, actually first I did the self-quiz, but more on that later). This is sort of the first step to my study process each week. I try to apply what I’ve learned to a real scenario as soon as I can. So for this week this meant developing a simple script to show of the topic of the discussion assignment, dictionaries. I was also able to apply what I learned about dictionaries in Python, to a another script that was not included in my discussion post.
For a coding challenge I developed a Python script that can take in a text file containing the characters from [A-Z] in ASCII art. The text file must include the width and height of each letter, and then given any sentence the output will be that sentence written in the ASCII art characters provided. Not to tout too loudly but I think it’s beautiful because it doesn’t matter what symbols are used to create the ASCII art, as long as each letter is the same “tile size”, or width and height. The space around each letter must be included in the width for my scanner to find the position of each ASCII character before adding it’s elements to the output.
This practice is exactly what I’ve been trying to achieve every unit of this course. My applications aren’t always as cool, but I always find ways to apply what I learn into something that is concrete and tangible. Even though this is an introductory course to CS/programming, there was still a lot of lessons for me to learn. This includes building conceptual models, writing tests, thinking about development cycles, and many other things that I didn’t spend enough time learning about when I was primarily self taught.
I’ve started applying the concepts I’ve learned in this course to every little project I do. I’m making it a habit to create conceptual models, write tests, and document my development process using version control. Although we didn’t learn about version control in this course it still falls in line with the “best practices” we’ve been learning, and it’s another thing I’ve neglected to learn until the past eight weeks.
These practices of using what I’ve learned in previous units in the units that follow, is another part of my study process. I strongly believe that no matter what you are learning, you should always review what you have learned before moving on. At the start of each week, I always review the self-quizzes and my notes before continuing with the week’s assignments. This takes a lot of the stress away that is usually associated with studying for any exam. I feel confident about writing my exam tomorrow, and I still have plenty of time left in the day to continue my studying, as well as a window for review tomorrow before I sit down and write. I treat my weekly reviews as if they are in themselves assignments, so that when finals come up, I’m not trying to go back and cram everything that’s been covered into a few days of study.
That leads me into the next study habit, which is taking practice tests. I live by them. I can’t understand why people don’t take advantage of practice tests. Especially in a formal course like this one, were you are going to receive a final grade rather than just vague none quantifiable self progress.
A practice test in any environment is simply free insight to what you need to focus your efforts on. I take the self-quiz at the beginning and end of every unit, to understand what I need to learn, and what I have learned. At UoPeople the self-quizzes are how I manage my time more effectively.
When I get questions wrong in the practice test I know I need to spend extra time on that area, and vice versa. I’m no data export, so I don’t know exactly how to quantify the performance there, but I can bet I consistently knock at least an hour or two off each study week by taking advantage of self-quizzes; it’s probably more.
After all of the studying and lessons learned in this course, what do I take away from it all? I think most importantly I discovered that not only am I capable of learning many different things simultaneously, doing so actually accelerates my learning, as well as improves my retention of syntax.
That’s not quite everything, but basically I’m gaining the understanding that as long as what I’m learning in each technology is interlinked with the others in some way, it’s actually proving to be better to learn all of this at once rather than in incremental steps. I really enjoyed what I learned in this course because almost every unit helped me progress in all of my other endeavors, and those endeavors also helped me to do well in this course. If nothing else, I get to add Python to my list of languages that I have experience in.
I look forward to exploring more of the Python language one day, such as the frameworks and graphics libraries that are available. I’ll probably develop a pong clone as a “downtime” exercise in the near future.
I lol’d as I reviewed the last few paragraphs in that journal. I’ve also been working with C#, and learning the basics of Unity. I’ve decided to contribute some of my time to assisting in the development of a game that aims to teach the APA format of writing to students while being fun.
Hopefully I don’t overload my brain completely and just die, but I think jungeling (jungeling, really? I’m tired, and meant juggling) so many technologies at once is benefiting me in the long term.
Next term at UoPeople I’ll be using Java. This shouldn’t be a problem for me as I found Java and C# easy to switch back and forth to when I first learned them. I studied Java only because it was the language used in the YouTube series CS106a Stanford. However it not only taught me programming practices that I use in every language I learn, it also gave me exposure and experience with Java, although I wouldn’t say I ever mastered it. …nor any language for that matter :/
That’s probably my biggest fault right now, is not being an expert at any one language, but rather able to flip flop between many, and then simply just spend some time on Google/Stackoverflow/Docs to find out what I don’t know off the top of my head.
Anyways, I’m starting to ramble. Thanks again to all those who’ve reached out to me just to say hi. I’m glad people are enjoying my journals and other random entries. I hope to come out with more useful material such as tips/tricks and tutorials in the near future. Especially in regards to my programming guide, and anything else CS related.