Hey, and welcome back to my new blog. It’s exciting to be posting here again. I’m still working through my JavaScript certification with freeCodeCamp, and having some fun doing so. Their new curriculum is quite frankly riveting. I should probably try some other sites out, though I am anxious to get through this course first. I am seeing a lot of my peers on X are using leetcode — something new for me to check out. I’m trying to breeze through this material and need to be processing masses of information quickly in order to do so.
Zooming through information is necessary in today’s job landscape. You need to learn, and when you’re working you need to access information fast, so you can do what you’re trying to do. It’s important to use Google as a tool, and increasingly, AI. Though I don’t use it yet myself, it seems like I will be soon. I don’t entirely dislike the idea, though I do worry about the authenticity of the information I’m putting out, and sounding generic. Having high standards can get you around this, though.
An unfortunate event from the other day has me in a sorry state, but I am trying to soldier on. I need to make some changes in my life, but I’m invested in this project and making it work. I’m trying to build the my Palindrome Checker right now, and I’m honestly at a bit of a loss. Maybe going for a run will help. Currently, I’m not in a good state to finish the project, though I have high motivation to do so. Hopefully I can fiddle with it some more, and find a little success, after a workout.
Finally some progress
So I’ve come back to it after a few days, and I’ve had a breakthrough. I couldn’t get the alert to fire, which I eventually solved by adding .value to the assignment of the variable represented by the input element with the ‘text-input’ id, which I named textInput. After this, I tried to get the next test passed, which I figured would be simple adding an else if block chained to my preexisting if statement. However, the alert kept appearing, and no text was being added to my div — the requirement of the next test.
This took a lot of head scratching, and fiddling, but I eventually determined that a couple of the variables needed to be declared within the function in order to have proper scope. This fixed my problem. I was off to the races after this, and I realized that I could simply hard-code in all the conditions needed to pass the test and complete the certification project. This was a simple alternative to actually creating an algorithm using regex and string methods. I chose to do this because I have already spent so much time on this, and honestly need to make progress to maintain some of my sanity.
Current tasks & learning
So far I’ve done a lot with the new freeCodeCamp Javascript certification program. I built a text-based RPG first, which was really cool. It’s always gratifying to be able to actually use something you’ve coded. Physically interacting with it was a high for sure. The game consisted of a few different monsters, weapons, and the ability to gain gold to pay for said weapons. It was gratifying, though I never managed to kill the dragon — the ultimate end-game goal.
In the RPG the student builds the project by creating a variety of functions that complete the variety of tasks needed to create a working game. Every attack needed to create a random amount of damage based on your weapon and experience level. Health is determined interactively after each attack action. It needs to be updated after each action — based on the attack values rolled. I’m actually playing the game now to refresh my memory.
It’s a simple game, but it’s engrossing. I fought the slime, and the fanged beast, and I’m preparing to attack the dragon. I acquired enough gold to upgrade to the dagger, claw hammer, and finally the sword. Next thing I knew I beat the game. Not sure why I was having trouble my first time trying it. I got the sword, but then was somehow downgraded to the dagger. Good thing it’s only thirty gold to re-upgrade to the claw hammer and another thirty to get the sword back. Overall pretty satisfying. It’s amazing how effective extremely simple code can be when there is a good concept behind it.
Paying it forward
It’s really been a joy working through this curriculum. The next project up was a calorie counter, which I briefly implemented into my real life to some success. I have previously supported FCC, and so found it suitable to support them again for the low, low price of $5 per month. This is nice to get rid of the new supporters pop-up, which comes up quite frequently. It’s no worries, though, as I’m happy to support such an altruistic project with the means to change the world with it’s interactive learning materials.
I’d like to apply this principle of paying it forward to my professional connections as well. I hope to be able to collaborate with some of my connections in the near future. Open source is increasingly appealing and within the realm of possibility, though I haven’t explored these avenues much. The possibilities are exciting and fun to entertain, for sure.
Hopefully I can make some via Upwork soon. I just got my 10 connections, used for applying for job opportunities, so I’ll be sending out proposals soon. Something will work out soon. I’m looking for a variety of work, both short-term and long-term, so hopefully I’ll have a chance at something soon.
Back to learning
After the learning form validation with the calorie counter it was onto making a music player and learning basic string and array methods in the process. Methods we learned about: find(), forEach(), map(), and join(). I personally hadn’t used find() before this, so that was interesting. I have a small amount of experience with the others. The find() method is a useful array method to find the first element that passes a simple test. The syntax is as follows: array.find(function(currentValue, index, arr), thisValue). The function and currentValue parameters are required, while the others are optional, and thisValue represents a potential default value.
The syntax is identical for the forEach() method. It calls a function for each item in an array and is only executed if it isn’t empty. The syntax is also the same for the map() method. The method creates a new array after calling a function for each item. Lastly, the join() method creates a string from an array and its syntax is like this: array.join(separator). It was lots of good practice, and inspiring to see how easy it is to create something like that.
After that, I learned about the Date Object in the next module. There was a lot of essential information if you’re ever going to work with dates, times, and time zones, which of course you are. The module went over getDate(), getMonth(), and getFullYear() methods. They are all accessed via the Date Object with dot notation. The getDate() method returns the day of the month — a value 1-31. The getMonth() method returns the month represent by a value 0-11. The getFullYear() method returns the year of the date — a 4 digit number between 1000 and 9999.
Most recently
After building the palindrome checker it was onto learning modern JavaScript methods by building football team cards. It was an interesting project. In this module switch statements, default parameters, Object.freeze() , and the map() method. There was also DOM manipulation, object destructuring, event handling, and data filtering. The created interface is quite satisfying. It provides a full readout of players for the Argentinian Football team in 1986. There is also a select drop-down that provides the option of filtering teammates by position, which is handy.
I’ve been reading a novel about two old friends who come together while they’re in college and start making video games. It’s pretty quality entertainment, so I should try to finish it up soon. I’ve just been reading it at night before bed, but I might bust it out now, and try to get some pages read. I feel like reading stimulates me in a positive way that makes it easier for me to write. Just practicing reading and writing makes processing masses of information easier as well. After I read this novel I’ll probably move onto some denser, technical documentation. I bought a book that seemed most relevant for my tech-stack, so hopefully it’ll be helpful.
Like I was saying in the last post learning how to use wire framing/prototyping software like Figma is at the top of my to-do list after completing this JavaScript certification. I was ambitiously hoping to finish the certification about two weeks ago now, and yet, I still need a large amount of progress to complete it.
Resolve
It’s been a little bit harder than I thought, though. I’ve struggled a bit, but I’m determined to finally achieve this goal of mine. I’ve been working towards the completion of this certification for years, and never finished, so it will be cathartic to get it done. I just need a bit of resolve to finish it off.
I’m determined to succeed with web development, and I’m committing a large amount of my time to doing so now. If I come up against a problem now I try to approach it from many angles. I also give myself a little space from the problem at times, which can help. If you’re really trying to push through material, however, this can be less than ideal. Sometimes its necessary to keep at it despite little progress with the hope of that long sought after breakthrough. There are various avenues for help though, such as my two favorites: Stack Overflow and the FCC Forums. There’s a lot of helpful advice usually without directly revealing the solution.
Eventually, I’m hoping to get into a habit of posting here two to four times per week. I haven’t been able to write as much as I’d like this month, so I’m trying to squeeze a few posts in, but the normal rate of posting will be about two to four posts per week. Its definitely a goal to get more posts up, and it would be nice to have at least 10k words written this month. I’m not sure it’s possible with the few hours left in the month, but it’s sometimes nice to have crazy goals to chase.
Enthusiasm & Obstacles
That’s all right, though, because I’ve always felt if you don’t aim high your reality will be inevitably low. If I can do something slightly crazy like that it might inspire others to chase crazy goals. It might inspire camaraderie, a new team, a new project. There are many possibilities.
I know I need to work harder, I need to invest more time, I need to have higher standards, and that things won’t come easily. If I can keep a high level of inspiration maybe I can achieve something great. “Nothing great was ever achieved without enthusiasm” ~ Ralph Waldo Emerson.
I’ve had a decent number of obstacles to overcome in my life. Tough situations have found me before, and some remain with me to this day or have occurred recently. I will overcome these things as well, and I will achieve my goals. I hope I can inspire you to do the same. I’d like to follow your progress as well. Seeing others achieve relative success is the most inspiring.
Some obstacles are physical and some are mental. A lot of mine are mental, but I’m learning how to cope by doing what I love frequently, and balancing my activity — trying to get plenty of time outside. Spring time feels like its finally here in Massachusetts. Most of March has been brutally cold and windy. I like to exercise about an hour a day training to compete in a triathlon or two this year.
Consistency will be my biggest advantage alongside enthusiasm. Only through it will I be able to grow into my self-employed developer dream job. I need to not only show up, but really delve deeply into concepts, and anything I may not fully understand.
Tools for Success
Developing a consistent workflow is something that I’ll have to work on as well. There’s a desktop app for UpWork to keep track of how many hours you work — something that keeps track of the time you spend working on projects.
As with most things, repetition is essential for learning and growing as a developer. You’ve got to get your reps in. I found the Codecademy app was good for doing this, and convenient considering you can do it practically anywhere on mobile. FreeCodeCamp is similar in this manner, though the new project centered approach is a more pragmatic take on learning web development that seems better.
I don’t think I’m going to cram in extra blog posts, actually. I want my content to be of high quality, and I’m concerned that this will lessen it considerably. This is why I’m going to stop after this post for a couple days at least. That being said I am looking forward to seeing the posts stack up on the blog page. I’ll then be focusing on developing my network on X. Hopefully I can make some friends and share inspiration on a daily basis.
In Conclusion
While I enjoy typing essentially vapid text — I need to hold myself to a higher standard, and keep the possibility of the success of this blog alive. It’s important to keep hope, and in order to give myself the best chance at having any I’m going to refrain from posting obsessively over the next couple of hours — you’re welcome.
Thank you for allowing me to entertain you briefly. Please leave a comment if you feel so inclined and let me know where you are on your coding journey. Have a wonderful day or night wherever you are, and I’ll be communicating with you here again shortly.
Leave a Reply