Friday, June 20, 2025

CSUMB Week 23 (18 June 2025 - 20 June 2025)

Briefly summarize what you consider to be the three (3) most important things you learned in this course.

-1. Gaining knowledge on the necessary software tools to create, connect, and/or modify databases (e.g. MySQL and MongoDB Compass). I feel that tool/software literacy is very important for personal and career development. 

2. Learning query languages such as SQL and MongoDB's JSON-like syntax. Instead of having a "conceptual" knowledge on SQL and what it does, I now have a good practice and grasp on how to use it. I saved all the homework file so I can still practice it in a "LeetCode" style format for fun.

3. How we were able to connect a database and use SQL with JAVA. I always wondered how SQL were implemented in other programming languages. Now I know and I am now able to implement database and SQL into my JAVA projects should I choose to do so. 

Tuesday, June 17, 2025

CSUMB Week 22 (11 June 2025 - 17 June 2025)

Compare MongoDB with MySQL. 

What are some similarities? 

I didn't really feel like there were too many similarities other than that they both store data. Actually, the CRUD operations looked similar as well.

What are some differences? 

Biggest difference is that Mongo does not use relational tables. It just stuffs all the data into one file without some sense of organization other than having the "collections" and "documents" hierarchy. That sounds a bit wild to me. MongoDB also doesn't have a complete workbench like what MySQL is (I'm assuming since it wasn't shown in the lecture or directions).

When would you choose one over the other? 

I much prefer the SQL's relational structure of database where tables are used. Mongo tries to store everything as a "document" (which is like each data entity within a collection). I also much prefer the fact that SQL can be practice on a MySQL workbench that pretty much offers a full ecosystem to work in. With MongoDB, the fact that I have to pull out Microsoft notes and a command prompt side by side feels like it is 2010. Maybe I'm missing something here because surely this can't be industry standard right? 

I feel like MongoDB is when you try to tell a teenage boy to clean his room and he goes

"Imma shove everything under the bed and if I run out of space, I'll then shove the rest under the couch. That's horizontal scaling for ya"

Tuesday, June 10, 2025

CSUMB Week 21 (4 June 2025 - 10 June 2025)

I am actually very satisfied with this week. I was wondering how SQL was directly utilized by a different programming language and how to have it be affected toward a website. The bigger picture of how it all generally works makes sense to me now. This was large part due to my struggle with lab 19. I was stuck on lab 19 for about quite a few hours (over 9 hours!) but it didn't feel frustrating as I actually felt like I was learning quite a bit. 

In particular, I enjoyed integrating SQL into Java and especially with how preparedstatements work. I also now understand the value of integrating "model.addAttribute(String attributeName, Object attributeValue)" and how to properly format and set up the catch(SQLException e) to work in order to avoid the default White Space error page. 

Tuesday, June 3, 2025

CSUMB Week 20 (28 May 2025 - 3 June 2025)

The web site "Use the Index Luke" has a page on "slow indexes".   https://use-the-index-luke.com/sql/anatomy/slow-indexesLinks to an external site. 

If indexes are supposed to speed up performance of query, what does the author mean by a slow index? 

I think what the author means is that sometimes the process is slow despite using index. 

As directly stated by him:
"An index lookup requires three steps: (1) the tree traversal; (2) following the leaf node chain; (3) fetching the table data. The tree traversal is the only step that has an upper bound for the number of accessed blocks—the index depth. The other two steps might need to access many blocks—they cause a slow index lookup,"

he is saying that the search process using index is actually 3 steps and the last 2 steps can slow down the process, thus resulting in a slow speed despite having used indexes. The slowdown process in step 2 can happen when there are too many matches and the slowdown in step 3 can happen when the data is scattered all over the memory.

Tuesday, May 27, 2025

CSUMB Week 19 (21 May 2025 - 27 May 2025)

Briefly summarize 5 things what you have learned in the course so far.  

- I've learned what relational databases are and how to use a relational database management system (MySQL)

- I've learned how to create queries using SQL

- I've learned about 1NF, 2NF, 3NF, and BCNF

- I've learned how to create an ER diagram

-I've learned how to read the "execute" statement diagram


List at least 3 questions you still have about databases.

- Is there a more clear-cut way to identify between a non-identify vs an identifying relationship? Sometimes I misjudge by believing the child table cannot exist independently without the parent but turns out it can.

- I feel that we need more practice on identifying candidate keys and determining the minimum number of appropriate composite primary keys.

- I still have questions about how database work is carried out in "industry practice." Do database engineers just sit there and produce a whole bunch of SQL tables, joins, ER diagrams, etc.? Surely there must be more to it than that.

Tuesday, May 20, 2025

CSUMB Week 18 (14 May 2025 - 20 May 2025)

What is an SQL view.  How is it similar to a table? In what ways is it different (think about primary keys,  insert, update, delete operations) ?

I see SQL VIEW as a temporary table (made from a SELECT query) that I can refer back to and interact with it in a limited manner (such as selecting columns by using the VIEW name gave it just like you can with a table); however, it is different from a table because the conditions in which you can perform INSERT, UPDATE, or DELETE onto a View is under a very limiting condition. For example, if my view contains JOINS or GROUP BY, then I cannot perform update data operations as previously listed. 


We have completed our study of SQL for this course.  This is not to imply that we have studied everything in the language.  There are many specialized features such as calculating rolling averages, query of spatial data (data with latitude and longitude) coordinates, and more. But take a minute to think about how SQL compares to other programming languages such as Java.  What features are similar , and which are present in one language but not in the other?  For example,  Java has conditional if statements which are similar to SQL WHERE predicates,  the SELECT clause is similar to a RETURN statement in that it specifies what data or expression values are to be returned in the query result (although it is strange that a statement should specify the RETURN as the first part of a SELECT. 

In addition to what is already stated, both languages are similar in a sense that SQL also utilizes "methods" (e.g. COUNT( ), AVG ( ), etc.). The View operation kind of also gave me a little bit of "object-oriented" feeling since it felt like we were "initializing" a query although maybe that's not a good comparison since a View is not its own "non-static entity." We also have to declare the variable type (e.g. VARCHAR, INT, etc.) just like we would have to in JAVA. 

The main difference between the two languages is the limited scope in which I can use SQL with. With JAVA, I can pretty much use it for any purpose such as creating a software. SQL is only limited to interacting with a database. 

Tuesday, May 13, 2025

CSUMB Week 17 (7 May 2025 - 13 May 2025)

SQL has the flexibility to join tables on any column(s) using any predicate (=, >, < ). Most of the time the join will use equality between a primary and foreign key. Think of example where joining on something other than keys would be needed.  Write the query both as an English sentence and in SQL. If you can't think of your own example, search the textbook or internet for an example.

The best way I am understanding this is that a key-based join establishes a "formal" relationship (as in it uses a primary and foreign key pair) and essentially always uses an equal sign (=). Whereas a non-key based join is an "informal" relationship where a relationship might not always be valid. Non-key based joins can also use predicates such as <, >, LIKE, BETWEEN, etc. 

for example:

"Given 2 tables called: student and grade, find students based on a range of a given grade"

We might see something like

SELECT student.name, student.id, grade.percentage

FROM student

JOIN grade ON grade.percentage BETWEEN 40 AND 60

WHERE student.name = grade.student_name;


What is your opinion of SQL as a language?  Do you think it is easy to learn and use?  When translating from an English question to SQL, what kinds of questions do you find most challenging?

I found SQL exceptionally easy to use and learn. The kinds of questions that gives me the most challenge is when it required multiple nested subqueries. Even then I think I am getting used to that part as well.

Tuesday, May 6, 2025

CSUMB Week 16 (30 April 2025 - 6 May 2025)

 Relational database tables and spreadsheets look similar with both having rows and columns.  What are some important differences between the two?

    From what I understand, tables from relational database managers allow us to manage relationship between tables a lot easier than it would have been when just limiting ourselves to spreadsheets. For spreadsheets, takes a lot of manual intensive effort to maintain data integrity.

Installing and configuration a database and learning how to use it is more complicated than just reading and writing data to a file.  What are some important reasons that makes a database a useful investment of time? 

    Well personally for me I feel like the query and constraint system alone makes it incredibly worthwhile to learn SQL since it makes managing database incredibly simple. It is much easier to maintain data integrity. 

What do you want to learn in this course that you think will be useful in your future career? 

- Becoming more familiar with the "tips and tricks" of relational database managers such as MySQL workbench.

- Learning how to implement SQL to manage database within personal projects.

- Learning how to develop a more mature database system.

Tuesday, April 22, 2025

CSUMB Week 14 (16 April 2025 - 22 April 2025)

This journal serves as both journal #7 and #8 for CST 338

Look back at the HW1

    HW1 was the Markov homework. I recall first attempting it by simply just coding whatever I deemed fit as a good starting point. While this method "worked" and I eventually finished the assignment, I think I could had saved myself a lot of the headaches if I just took the time to read the whole direction document first and made a picture diagram that connected all the methods and who was calling who. I suppose for my brain, a UML diagram simply isn't enough. 

Highlight at least two victories. 

    I suppose one of the victories is that I find it somewhat easier to read a code when thrown into the middle of it. Usually reading a code is easy when already cognitively knowing where I began and where I ended, especially if I am the one who created that code. However, what if it is not my own creation and I'm just thrown into a code that without a guidance on the starting point? Well, I'll just have to figure it out, and that's a practice I was able to participate in throughout this class. A lot of the assignments already had all the "fragmented puzzle pieces," as in I was not the one making all the fields and methods. Instead, I had to put them together in a cohesive manner. Reviewing other people's code also meant I had to review code that may have looked substantially different from mine or one's that lacked descriptive comments. I still don't find it easy per say, but not anxiously freaking out at the thought of being thrown into someone else's code is a small step victory. 

    A large victory is actually finally understanding (somewhat) on properly understanding and using GitHub and its various features. Yes, there are tons of video tutorials but none of them seem to help for a beginner like me when so many jargons were thrown in and nuance cases were never discussed. For example, it's like almost everyone just assumed everyone already knew what a "pull request" was. I did not, and if someone simply just said "it just means asking permission to merge your code to the remote main branch" would have saved me so many headaches. That's all it would have taken. Instead, I had to sit through several numerous 5-10 minutes tutorial videos that never got to the point and were begging for subscribers. Or having to figure out the nuances of "commit and push" the hard way. For example, apparently if I already merged my local branch to my local main and I remained checkout in my local main branch, and then press commit and push, my local branch just never shows up in the remote repository. Instead, I have to physically remained checkout in my local branch and then press commit and push before that branch gets inserted into the remote repository. That didn't sound intuitive since I assumed commit and push would mean actually committing and pushing every code and branch I made, but apparently that's not the actual case Or how no one ever mentioned that if you commit your changes locally, for some reason you now cannot commit and push to the remote repository because GitHub no longer recognizes there were code changes anymore, so now you have to make a silly little change like inserting a period in the comment section to actually force GitHub now to allow users to commit and push. It is these reasons (and many more) that I consider it a massive victory that I now somewhat understand how to use GitHub. 

Tuesday, April 8, 2025

CSUMB Week 12 (2 April 2025 - 8 April 2025)

Work with your fellow classmates and go through your solutions to the Markov assignment.

Who did you work with?

    I worked with Valentina Waltman and Brandon Evans.

What was your strategy for solving the Markov assignment?

    I started with reading the direction on the assignment document. I went line by line and started coding right away. I will admit, however, that this method did prevent me from seeing the full picture and how all the codes were initially connected/related to each other. 

What was THEIR strategy for solving the Markov assignment

    Similarly to me, Brandon basically coded right away as well (or at least that's how me made it sound like). I know that Valentina is more methodical and is the type to watch every relevant video before starting the assignment. 

    If by strategy, you mean the actual code methodology we used, the assignment was very straight forward in what was required so therefore we all used pretty much the same general tactic. However, the only thing different, was my purposeful decision to not use the PUNCTUATION_MARKS variable. I decided to use a for loop and typed "if (word.charAt(i) == '.' || word.charAt(i) == '!' || word.charAt(i) == '?' || word.charAt(i) == '$'){ return true;} to look for indications of punctuation. I chose to go this route simply because I wanted to see if the same type of method that I used in the past on a CodingBat question worked on this scope of the problem. It was more out of curiosity of "would this work?"

How would you change your strategy having worked on the assignment?

    I probably would have had created a flowchart map of how all of the methods are connected to each other (who's calling who). This way I would have gotten a bigger picture of what's going on when the Markov file is called. 

According to your classmate(s): how well does your code follow the Google Java Style GuideLinks to an external site.?

    Brandon believed it followed the style guide pretty well, and Valentina thought my comments were extremely detailed.

Did you know you can automate applying some of the style guide rulesLinks to an external site?

     I am now aware of this, yes.

Tuesday, April 1, 2025

CSUMB Week 11 (26 March 2025 - 1 April 2025)

With whom did you work?
I worked with Brandon and Valentina

What was your strategy for solving the assignments?
I actually copy and pasted the document directions as a note into my IDE and followed/solved line by line. This actually helped me a lot.

Did you start writing the code right away? Did you plan it out on paper?
I originally started writing right away but then got lost. So eventually I transitioned into paper planning (mapping out the UML and which methods are calling which) mid-way which helped to ground me on where to begin and where to go. 

What was THEIR strategy for solving the assignments
Well, I think Brandon just straight dived into the assignment and began coding right away. He solved as he went along. Valentina on the other hand was incredibly meticulous and essentially wrote out which methods may seem easy or hard and what was required for each before beginning.

How would you change your strategy?
I would go right to UML mapping to create a visual flow map for myself. This would have caused less confusion when I get lost mid-way through coding.

According to your classmate, did your code follow the Google JAVA style?
Yes, they believed I did.

Did you know you can automate applying some of the style guide rulesLinks to an external site?
I did not know that. I'll look up on that.

What was the most challenging part?
Keeping myself not lost among all the methods. I guess it was having the bigger picture in mind that was challenging.

What was the most interesting?
Well, I did enjoy the more compartmentalized approach to how JAVA should be utilized (as it should be) compared to what a beginner would do which is coding everything onto a single main class. 

What are you most proud of?
Similar to what I wrote for last week, it is not finishing the assignment that made me feel proud but rather what I learned from others that made me realize what I can tweak and change in my code. That's what usually gives me a feeling that I am improving.

How did you celebrate completing the assignment?
I went to the zoo with my girlfriend.

CSUMB Week 10 (19 March 2025 - 25 March 2025)

The code reviews I've given for Valentina and Michael is given within this link:

https://docs.google.com/document/d/18C-dDro7rwCim8owUT61LqdoouG8dW7e4n59Zsslfrs/edit?usp=sharing

With that being said, most of the feedback I've received is that I have highly detailed comments that makes it easy for anyone to follow along but that my code is not the most optimized. In particular I could had utilized HashMaps but instead I used multiple elementary for loops. 

As for my struggles, just like always, it was always with the little details. For example, when running the program, messages get printed infinitely because my monster was not fainting (as decrementing wasn't properly set). Or how I forgot to set a different minimum and maximum values for FlowerDino and FireLizard and that set off a whole bunch of errors when running the tests. The project itself wasn't hard; however, I wouldn't say writing code is easy either. I do believe I am getting better intuitions though the more I practice. 

I would say my "victory" is less so on about finishing the assignment and more so on what I learned and gained by comparing my code to my teammates. For example, seeing how they utilized HashMaps or realizing I could have done switch-cases (instead of a whole bunch of if and if-else) made me more cognizant of the different implementations I can use. 


Tuesday, March 18, 2025

CSUMB Week 10 (12 March 2025 - 18 March 2025)

As this week comes to a conclusion, I have completed the Markov assignment. I would say the challenges I've faced were not based on coding that required substantial theories but rather silly mistakes. For example, I've spent close to 3 hours trying different approaches as to why my addWord method was not being passed in the test. Turns out, the method was fine from the beginning. The test wasn't passing because I forgot to create a constructor and hence words were not being initialized correctly (slaps forehead).

I did, however, learn something very new that I never tackled before: regular expression (aka Regex). I learned this to try and trim all the whitespaces out in a given line of texts. The regex approach (assuming if I understood Regex) seemed simpler, so I started to learn Regex syntax. Some of the initial learning sources felt very esoteric and confusing; however, once I found the right source, it started to make sense. This video in particular helped tremendously:

https://www.youtube.com/watch?v=HvryGBPmNl8




Tuesday, March 11, 2025

CSUMB Week 9 (5 March 2025 - 11 March 2025)

Discuss the process of solving the Coding Bat challenges.  A major part of software design is thinking about how to approach a problem with the tools we have at our disposal.  What were the steps you took to solve some of these challenges? 

As I was busy self-teaching myself Python, it's been about 5 months or so since I touched JAVA. This became evident since I threw myself right at the Coding Bat challenges. Syntax wise, the struggle only lasted about 20 to 30 minutes or so before I started remembering all the JAVA basics.

Once I remembered the fundamentals, the coding challenges weren't much of a challenge. Most questions only took 1 or 2 tries/attempts. I was already accustomed to LeetCode styled questions (due to warnings given to me by every software engineer that I should familiarize myself with this). The only category that gave me some problems was the "String-2" module. I tried to stick true to the "intention" of the module's lesson and only use methods that were previously mentioned/taught by Coding Bat (e.g. charAt(), substring(), length(), and equals()). I made a conscious decision not to use AI to guide or help me. The tools that I limited myself to use was browsing through the StackOverflow forum website (which surprisingly felt useless most of the time. Most answers just seemed to be filled with SWE holding much disdain for each other - why is that?). 

Due to this, it took me a bit of time to figure out certain nuances such as realizing I must use '' instead of "" when using the chatAt() method or that == cannot be applied to objects but .equal() method can (but that == can indeed be applied to Strings [which are technically objects] but with the understanding that it is pointing to the reference only rather than the characters being the same). 

After I solved the questions, I took a look at YouTube tutorials to see how others did it. It made me realize how much I liberally used a "flagging" structure when a simple well placed && operand could have simplified it. 

At the end of the day, this was a great warmup and exercise. After all, what is a better way to force memory retention than through frustration and being stuck? Ha. 

Saturday, March 1, 2025

CSUMB Week 8 (26 Feb 2025 - 1 March 2025)

Part 1: Review Other Teams' final video projects

Brain-Computer Interfaces - Past, Present, and Future

From the discovery of EEG to the advance of Neuralink, the video goes in depth of the history and technicalities pretty well. The production value of the video is sufficient. I would caution on the usage of lo-fi music throughout the entire video as their purpose is to relax and often help put people to sleep. 

Deepfakes Explained: The Dark Side of AI

Great explanation on Generative Adversial Network. I especially liked the analogy of the painter and the critic. The video did talk about the damages of deepfakes, but I would have liked to saw some examples to drive home the point that it is indeed happening already (e.g. news clippings and other references). The portion of the video that tested our ability to spot AI images was a great way to interact with the audiences. It is also clear great effort was placed into the editing. Overall, good production, good content, great video. 

The Metaverse (Long)

The video does a pretty good job of explaining what a metaverse is; however, I would like to have seen more discrepancy between the concept of metaverse and videos game such as that of "Second Life" which ticks a lot of the requirements of what a metaverse may be. Is it simply a role-playing game or an early adoption of metaverse? 

As for the video production, I feel that the overall quality could be improve through adding music and a bit more editing. As it stands, it is less of a video and more of a slideshow presentation. 

Part 2: Keep Up with your Learning Journal

I am exceptionally happy with our group effort on our video projects. We have shown great initiation, concise communication skill, and on-time accountability. I could not have asked for better teammates. Made the project much more fun to work on. Perhaps I enjoyed it too much since I spent a greater amount of time than I intended on storyboard planning and editing. 

Overall, everyone pitched into the project sufficiently whether it be through scripts, research, editing, or voicework. I'm not so sure on what else we could have done to improve our collaboration. 


Tuesday, February 25, 2025

CSUMB Week 7 (19 Feb 2025 - 25 Feb 2025)

Part One

Reflect on your team's Final Research Video Project Planning.  How did you collaborate?  What tools did you use to communicate and produce? Is the process smooth, what will you do differently next time in large collaborative projects?

I enjoyed the form of collaboration we came up with. The process was very smooth. We basically just put a whole bunch of individual facts that we learned onto one page for every section rather than dividing and conquering a section. We then grouped these facts into relevant categories to create a section. This way we contributed a bit into every section. How we will edit the videos together, however, was trickier. Unless we sit together on a single computer for several hours in a row, we're not sure how to edit sections without "divide and conquer." For this reason, we then assigned ourselves to a section and created a video segment for it. We will then combine and patch our parts together.

Part Two

Please reflect on the Lecture readings in this section and what you have learned from this week's activities.

One Ted talk video that is related to CS and/or technology:

Chin-Teng Lin: The mind-reading potential of AI | TED Talk

This was one was really interesting. To have AI translate brain EEG to words sound amazing. I didn't think something like this would be possible. To then imply that it may be possible to have a headset where the AI reads your intended action and have a robot in the distance perform it, sounds incredibly useful. I do wonder about the technicality of this endeavor. Is it just a matter of amassing a whole bunch of raw EEG wave data and brute training through supervised learning or something else?

One Ted talk video that was of my interest:

Christine Blume: Why daylight is the secret to great sleep | TED Talk

I chose this as my non cs-related personal interest since I'm always interested in getting a better sleep. I understand that blue lights mess with the circadian rhythm, but I did not know a lack of sunlight also disturbs your sleep cycle. I simply thought a lack of light in advance was necessary for a good sleep (e.g. not doing computer work right before deciding to sleep). Instead, this TED Talk taught me that having received sunlight will actually boost your REM sleep as well and that this only works with sunlight (not led, lamp, computer screen, etc.). I should really take this as a sign to walk outside more often. 

P.S. Life After Death by Powerpoint (Corporate Comedy Video)

I really enjoyed the comedic approach to his presentation style. Felt that his points were "rung" more clearly in my head through his lively act.


Tuesday, February 18, 2025

CSUMB Week 6 (12 Feb 2025 - 18 Feb 2025)

Part 1: Help Your Teammates to Develop Capstone Ideas

So far, we decided to create an app but have not agreed on further details as of yet. One agreement we made was to not create a game as it seemed cliche and did not seem relevant to any of our goals. Michael seemed to be interested in a data analytic based app for some of the popular video games that are being played by many young people such as League of Legend. This doesn't seem like a bad idea as it also lets us practice accessing and using various APIs. 

Part 2: Keep Up with Your Learning Journal

As a team, we did extensively discuss how to contribute toward the video group project. In order to avoid a "divide and conquer" method, I suggested we all write our own list of "statements of facts (or learning)" We then create a master sheet and decide together which facts or knowledge to include and then order them in a way that makes sense for presentation. I believe this will allow us all to evenly and holistically contribute toward all the phases (intro, content, and ending) of the video as opposed to just a single person being assigned to each phase. As a team we also decided to look at videos that does well in its presentation style (such as Vox) to learn some effective delivery styles. 

Monday, February 10, 2025

Industry Expert Interview - Software Engineering

 Introduction

This week, I got to interview someone within the tech industry. The name of the person that I interviewed is Taha Khan. He is a senior software engineer at Amazon, and we interviewed through the phone. I reached out and interviewed Taha since I figured he represents a good figure, or a milestone, that I myself would want to eventually meet. 

I asked many questions but decided to only include the bolded ones on the bottom in this writing since they seemed the most relevant. The answers written down below may not always be exactly as physically stated since it was based on my note taking speed; however, it captures the sentiment correctly. 


What did your career path look like? Did you go straight into a software engineering role?

“First job, yes. I wrote software for Northwestern Mutual, and I worked on stock stuff. Helped create an app that allowed investors to decide what to invest on. Basically, I made benchmark testing for theoretical spending and growth. I now work at Amazon working on the Alexa software”

How many applications did you apply for until you got your first job?
“Back then, I sent in about 350 applications. I eventually got my first job due to a referral from a friend. I know I know. Knowing who can refer and vouch for you is incredibly important. That’s the truth. Admittingly, I did poorly on many interviews. There weren't a lot of resources back then and LeetCode was barely ever mentioned or talked about.”


What are some of your most significant challenges in your role?

“When you start your first job, you do not have the right tools or the knowledge to survive right off the bat. Schools don’t teach you any industry knowledge or protocols since they only care about theoretical and basic foundations. This problem is compounded by the fact that a lot of US companies don’t like to provide training since they see it as a cost measure rather than as an investment. They mostly just hope that some other companies trained you first in the past… so it becomes this game of merry-go-around where they all hope someone else has trained you first. In other words, you need to pick up the pace asap and grind.”


What is some industry standard/norm changes you’ve seen so far?

“There’s two that I can think of. The type of people that’s been joining lately and the frequency in the usage of AI tools. Nowadays it seems people only join software engineering strictly for money. Secondly, the frequency of which we use AI tools for tasks has increased.”


Any industry trends you see so far?

“There is a strong distaste for outages. In the past it might have been acceptable or considered a fact of life but now it is unacceptable to have downtimes in your software, app, program, etc. The industry also wants to move onto easier to understand languages such as python. This is due to many bad products that’s been released due to complications caused by complicated languages. Simple languages are more readily accessible, learnable, and maintainable. “


What advice do you have for those who want to join the software industry?

“Always learn. You can’t be complacent in this career. In addition, always work on your problem-solving skill; however, I do want to say that not all problems require a technical solution. This is because the more you code, the more you have to support those code. Sometimes, less is better.”


Post-Interview Reflection Report

Taha was pretty straight to the point. A man who likes to be concise. I can appreciate this. The takeaway I got was that this is a rigorous career. You must constantly learn and avoid becoming complacent, or risk being laid off. Looks like joining the industry is rough as well even back then (pre-2020) just as it is now. To help me get prepared, I should make many friends, network, and build a portfolio. I’ll also have to go beyond fundamentals and delve into some specific relevant industry knowledge such as protocols and tools companies may use (or at least become familiar with). Fortunately, I already expected all of this when I decided to switch careers which helped me to mentally prepare for this reality. I knew this wasn’t going to be easy, and I will still make the conscious decision to pursue this path. 

An interesting snippet Taha mentioned that stuck with me was how people nowadays only join software engineering for money. I sometimes wonder if all the doom and dismay from recent graduates are simply due to them being unprepared for the actual reality. The hype trend from the pandemic days when every tech influencer boasted about making 6 figure salaries on a 10-hour work weekday really did not help either. The truth is much different. This career is not to be cruised on in auto pilot. Success requires immense work, and I will have to constantly learn and stay on top of the trend if I wish to succeed. It is a good thing that I have passion for it to begin with.


CSUMB Week 5 (5 Feb 2025 - 11 Feb 2025)

Part One: Support and Comment on Teammates' Goals

Comments for Brandon:
https://brandonatcsumb.blogspot.com/2025/02/week-4.html

Comments for Valentina:
https://valentinacsjournal.blogspot.com/2025/02/4-january-29th-february-4th-1.html?sc=1739210541780#c98484686114293815

Part Two: Possible Capstone Ideas

    We as a team decided to either create a website or an app instead of a game, as that seems too cliche. For a website, perhaps something that deals with payment systems seems like a good idea. Another one would be to create a web store. Better yet, I suppose we can just combine those two. Lastly, we can create something entirely different. Maybe some form of a data analytic website. I do manual analysis on some niche games, but I'll have to choose something more well known that is familiar with my teammates. 

    As a side, I can probably do another capstone project on my own. Something that deals with machine learning or AI. I recall, while watching previous capstone projects, that there was an AI institute one of the past cohorts has contacted. I should reach out to them to see what, if any, opportunities and ideas may exist. 

Part Three: Keep Up With Your Learning Journal

While researching on some topics our team can make a video on, I came up with two that interested me greatly:

1. The AI race between USA and China

2. Cryptography in the quantum age

    Any topic involving AI will naturally grab my attention, so the news of DeepSeek definitely kept my mind busy. The potential for the massive disruption it will cause on USA's tech giants' business model fascinated me. Ironically, OpenAI's model is more that of "Closed"AI since it is not an open-source program, and their secrecy and research kept them at the forefront of AI advancement; however, DeepSeek is not only more fundamentally efficient but open-source as well. Can't wait to read more into it.

    The topic of cryptography itself does not interest me, but the possible disruption that quantum computing will cause does. How would we ever move forward as a society if data and privacy can no longer remain secure on the internet and data clouds? What will companies do? Do we just move back to physical paper data? That doesn't sound feasible in this era. I have no idea. I suppose this is a whole new topic I can delve in as a personal interest. 

Tuesday, February 4, 2025

CSUMB Week 4 (29 Jan 2025 - 4 Feb 2025)

Part 1: Setting my Educational Goals

Some of my educational goals I hope to obtain from this program is:

  • Maintain network relationship with faculty members

  • Obtain a TA position

  • Look for internship opportunities

  • Create and participate in a capstone project 


Part 2: Setting my Goals

  • Getting one of the following roles in the industry:

    • Data, software, or machine learning engineer

  • Preference: right now I am stuck between software and machine learning engineering. Software development offers more career flexibility and opportunities but personal interest lies in machine learning and AI. 

  • Create side projects that delve into both machine learning and software development so that I can receive a better idea of what I really want.


Part 3: Taking a guess of my percentile of the ETS Computer Science test

  • I feel that I can receive a score of between 70-80% if I were to take it in 18 months. I believe this way because I feel confident with topics regarding discrete structures, programming, and algorithms. The part that I feel currently weak at is systems, information management, and the “other” category that involves web computing and security. 

  • Test taking is something I am comfortable with and already used to. The computer science ETS test looks very familiar to the CSET format that I’ve taken before for both chemistry and math. I’m sure with some practice and studying, I can pass the CS ETS test as well. 


Part 4: What I’ve Learned this Week

  • Reading about the ETS computer science test caught my attention. There seems to be very little information about it online. Is its purpose only to assess how well a college cs program does in preparing their students? Call me a masochist but it looks like it would be a bit fun to actually take this test. 

  • While writing my paper outline, a second pondering I’ve had is how little control recruiters actually have when using AI software to source candidates. Looks like algorithms tend to learn from the user’s habit and once it is set in stone, the user can’t do much to change it beyond that. Reminds me of some of the problems I’ve been having with Youtube. Looks like my algorithm only recommends the same videos over and over (which is mainly warhammer and computer science videos). If I try to manually deviate away from that by watching some other theme, it just recommends me right back to those two topics. The algorithm formed a bias of what I like and remains pretty stubborn from moving away from it.

Tuesday, January 28, 2025

CSUMB Week 3 (22 Jan 2025 - 28 Jan 2025)

 Part 1 - Pinpoint a flaw and draw reflection

    From my last blog, I wrote that I have a hard time with faithfully keeping to a schedule. Essentially this means I have a time management problem. Good news is, I've been naturally getting better at this, especially as I age up; however, it doesn't hurt to take some additional reminders and tips offered by AcademicTips.org. 

    One of the helpful suggestion it offered is a "personal time survey." This is where I list several of my activities throughout the day and quantify it into hours spent. I multiply that by 7 and I have the total hours spent in a week. One of the the eye-opening moments was seeing the hours of sleep that I had. I usually sleep around 10 or 11pm. I wake up at around 9 or 10 am. Sounds strange when I write it out like this, but the truth is I sleep around 10 to 12 hours a day! That means I am sleeping around 70 to 84 hours a week. Compare this to 56 hours of weekly sleep if I were to sleep 8 hours a day. This means I am missing out on almost 28 hours of productivity per week! Maybe I really should start drinking coffee in the morning instead like everyone else.

    Another good tip was simply telling me not to be a perfectionist. I have to shift my mentality more toward "get it done." This will allow me to move onto the next assignment in a timely manner.


Part 2 - Personal learnings and pondering

    Some of my favorite topic I learned this week was on Suleyman's and Ng's discussion revolving around AI. Suleyman sees AI not as a tool but rather as a digital companion. He explains AI as possessing a trifecta of IQ, EQ, and AQ (action quotient) which allows the potential to guide through knowledge, "empathy," and action. Interesting perspective. The next video involved Andrew Ng, which I became excited about as I follow him on several of his courses. He introduced the concept of agentic AI (or AI agents). At first I didn't quite understood the difference between that and simply utilizing AI as a workspace. Clarity was offered when he started differentiating the difference between non-agentic zero workflow and agentic workflow. It was interesting to see that AI can serve as a mediator to determine thinking goals to provide to another AI to produce a more accurate outcome. It seems this discourse introduced another layer of stack known as "agentic orchestration layer" within the AI stack hierarchy.

    This does bring with it my own personal pondering regarding ethical frameworks that we've learned this week and how they fit into these new developments. If were to shift our mentality of seeing AI as tools to companions, how then do we determine that is right for AI to teach us? Each of us as human come with our own understanding of the world limited by our culture and experience. This is inherently understood and our flaws are viewed as natural. But for an AI, if it is to serve as a companion, what framework do we let it adopt? Do we let it behave in accordance to the Natural Law Theory? Let it adopt a Utilitarianism model? Or since it is suppose to act as our companion, do we let it develop a personalized Care Ethics model?


Part 3 - Reflection regarding "What Every Computer Science Major Should Know"

    The reading had quite a lot of suggestions, and for good reasons. One of the discourse I consistently hear is that most new CS graduates "do not know how to code/program." This sounds a bit ironic at first and then it becomes quite clear that this is the truth. Most CS degree programs teach fundamentals and theory but not industry standard practices. Many students therefore are left to figure out how to achieve relevant experiences on their own. Combine that with the fact that many recent students simply utilize LLM to do the coursework for them and you end up with graduates who didn't even achieve a strong foundation in fundamentals to begin with. 

    This is where the "Portfolio versus resume" section seemed to hit so hard. In order to make software development my career, I must create a code portfolio. The expectations are changing and resumes simply don't cut it anymore. In addition, the Unix philosophy was an interesting reading since it is the first time I've heard of such concept. From what I understand, the philosophy it is talking about is regarding how people should approach software design and development - the kind that was used when Unix and its relevant programs were first created. 


Part 4 - Reflection on Integrity

    Recently, I've understood integrity as not just a philosophical matter of character purity but as a core component of our software development career. This is a very strong "know it or die" profession. If I cannot produce the thought ability to create my own original code, then what use am I to my company or client? How can I expect to further my skills and knowledge if I let others or a LLM do all the creation for me? The same expectation goes for my cohorts. It is in my best interest to have teammates who are competent and they cannot develop competency if I do the work for them. 

    

Tuesday, January 21, 2025

CSUMB Week 2 (15 Jan 2025 - 21 Jan 2025)

Originally I was not too keen on writing an industry analysis essay. It was near the middle of my draft that I conceded the necessity of such an assignment. It served as a foundational point to keep myself well informed of the career route and my goals into a concrete written format. In addition, fleshing out details can sometimes bright into light certain realities and what may or may not be pragmatic. I will write my personal thoughts and developments first before moving onto the required postings.


Personal thoughts and development:

With that being said, I am keeping myself well informed of the current market. The continuous Federal rate cut should help bring in more capital and increase the flow of wealth velocity. The tech industry as a whole is not a trend but a foundation of our modern society. As such, it will continue to follow the bust and boon of the market. With every depression comes with recovering expansion and vice versa. Therefore my hope in entering a career in technology either as a software or machine learning engineer remains solidly strong. 

In regards to my personal project and education, I have also started the process of creating a rough outline in Python to code linear regression. Using PyCharm as my IDE and a text files with sample data, I've written a basic cost function, which for one variable is:

J(w,b) = (1/(2m))∑(m-1,i=0) (f(w,b)(x^i)-(y^i))^2

*where the prediction for the model f(w,b)(x^i) = w(x^i)+b​

and implemented a gradient descent algorithm to adjust the parameter values of "w" and "b" to get a smaller cost J(w,b).

In addition, the learning and usage of numpy library to utilize arrays effectively and matplotlib library for plotting graphs has been a fun one for sure. I will continue to work on getting familiar with all the necessary features of these libraries and the math involved before I move onto regressions involving multiple parameters. 


Required postings:

Part 1

What are the top 3 items that you are good at, and what are the top three areas you feel you are weak in?  

I am quite adequate at reading, taking notes, and questionings. I am however, quite weak at faithfully keeping to a schedule, getting distracted, and reciting what I have read or learned. 

Part 2

Sample of my activities for this week:

15 Jan (Wednesday)

- 11am-1pm, read materials for the week

16 Jan (Thursday)

- 10:30am, finished quiz on Academic writing

- 11:30am, finished quiz on Peer Review Guidelines

- 6:10pm, submitted weekly survey

- 6:15pm, had instructor meeting

- 6:30pm, had team meeting

- 7pm, started and finished CollabU assignment

17 Jan (Friday)

- 11am-2pm, started draft of the essay

19 Jan (Sunday)

- 7pm-11pm, continued and finish draft of the essay

20 Jan (Monday)

- 6:30pm-7:30pm, peer reviewed Valentina's essay

21 Jan (Tuesday)

- 1pm-2pm, peer reviewed Brandon's essay

Part 3

Project management is constrained mainly by 3 factors: scope, time, and cost. If one changes, the others will change as well. Creation of a project begins with a need. This need can be based on market, business, social, ecological, etc. Project proposal and selection then follows after. The success of the project will then follow on the project manager (pm) who will utilize both technical and intra-personal skills. Some of the techniques pm will use include work breakdown structures and Gnatt charts. Work breakdown structure is simply a hierarchical decomposition of a project into deliverables whereas Gnatt charts visually break down project charts onto a time schedule. 

Part 4

Some of my favorite presented capstone projects were:

Security Scan Project - essentially a translation program. Turns a SARIF file into a layman friendly readable output. It's always good to see anything esoteric broken down enough for a regular person to be able to decipher. 

Requisite Organization - A program that provides visual representation of organizations hierarchy. This project seemed very simple but effective at what it is trying to provide.

However, as a fan of machine learning and AI, my favorite project was the "Identifying Brain Tumors using Computer Vision" by Robin Hurtado. From what I understood, Ms. Hurtado helped with the training and testing a model to improve its detection capabilities. Overlapping a predicted mask with the actual mask and giving it two different score models (the Intersection Over Union and Dice Coefficient) to train the algorithm to correctly detect a tumor sounded very fascinating to me. I wish the presentation was able to provide some snippets of used code sections for me to parse through. 

Part 5

I've realized that the contents of part 5 is essentially the first paragraph of this blog + my personal thoughts and development section. 

Friday, January 10, 2025

CSUMB Week 1 (8 Jan, 2025 - 14 Jan 2025)

This is the first official week of the csumb computer science program. This blog page will serve as my weekly learning journal log.  

For this week:

- Started early on assignments

- Updated and spruced up my Linkedin profile: www.linkedin.com/in/wootark-kim

- Worked on and submitted our team's resume

- Checked out csumb website a bit more in detail

    - found this website that'll be helpful later on: https://csumb.edu/career/otter-jobs-student-access/

On my personal side, I've applied to several internships and jobs. Got a response for an online assessment from Cisco so I'll studying up on that throughout the days.