Last week I didn’t post any updates about my progress, which is a bad thing, I told myself I’d post at least once a week, but the reason I didn’t post is a good one I think.
First, I’d like to say that I’ve been coding every day since I started this journey, without failing once. Every day, after work, I spend between 1-3 hours watching lectures, reading books or practicing. I’ve even been coding during work hours (don’t tell my boss), mainly freecodecamp.org lessons.
My focus these last two weeks has been completing Harvard’s CS50 weeks 3, 4 and 5, being the 5 the one I’ve had the most fun with, more on that later.
I found it to be a pretty straightforward week; we were introduced to images, how they work and how data from images is read and written by machines and code. We had to complete 3 problem sets which consisted of:
Whodunit, where we had to modify a bmp file, which had a hidden image we needed to reveal. Manipulating, pixel by pixel, turning the noisy ones into white ones.
Resize, where we had to implement a program that resized a bmp file.
Recover, where we had to implement a program that recovered a deleted JPEG from memory.
The thing I found to be most challenging was the notion of pointers in C, which I think I sort of understand now.
Ok, this one I struggled with. We were introduced to a few data structures and algorithms concepts like hash tables, linked lists and tries. Where I struggled the most was with the problem set, which consisted of implementing a program that spell-checked a file using a hash table.
Probably, I should have spent more time this week and go deeper on data structures and algorithms so I’m planning on taking Coursera’s Algorithms I and Algorithms II courses after completing CS50 so I have a better understanding of these concepts.
Next week’s plan is to keep learning HTML and CSS, practicing and building websites and start CS50’s week 6, which we’ll be introduced to Python.
If you’re interested in what I’ve been building, you can find everything on my Github profile. I’ll keep uploading everything I build there.
Things I have to improve:
- Be consistent with my writing, it’ll help to keep myself accountable and organize better all the things I’m learning.
- Increase the time I spend in active learning v/s passive learning, which is basically, increase the time I spend writing code v/s the time I spend watching lectures and reading.
- I’d like to write about concepts and step-by-step process of things/websites I’m building.
Connect with me on Twitter! :)