What Got Me Hooked on ‘Tronics

CS467 – Blog #5

Image by Free-Photos from Pixabay

I’m lucky to say that I grew up in a world where the internet was just a new fad waiting to die out and also in a world where the internet runs our entire lives. I’ve always loved technology and things that go ‘beep-boop’. But the passion for technology only started to spread after I started diving into how computers worked.

The Candle – Windows 98

The candle of my passion for technology was lit in elementary school where playing computer games (mostly educational) was a common occurrence along with being forced to type correctly thanks to Mavis Beacon. I quickly picked up how to navigate the Windows 2000 operating system by just clicking stuff and seeing what happened. It also helped that our family had a desktop PC in 2000 running Windows 98 where I played a lot of PC games such as Pajama Sam, Sim City 2000, Backyard Baseball and Football, and of course, Oregon Trail.

The Kindling – Video Games

The kindling of my passion for technology was fueled by a mild, yet normalized, obsession with video games. Fate (my parents) had decided which ecosystem I would be in for over a decade. That ecosystem was PlayStation.

PlayStation 2 was the first console I received along with EA Sports’ Madden franchise, Need for Speed, and Tony Hawk’s Pro Skater. Since console online gaming was not yet widely adopted, playing video games with friends in person was a large part of my childhood which further fueled the passion for technology and learning how it works. I even received clear wireless controllers so you could see the circuit boards, wires, and how the buttons actuated.

Interacting with digital media (such as video games) left an enormous impression on me which made it seem that anything is possible with computers. In my late teens, I started watching educational videos on YouTube about how computers work and what hardware is required. I would recommend Sixty Symbols as well as Computerphile to anyone who is curious about how computers work.

The Campfire – Supercomputers and Web Development

The kindling turned into a raging campfire during college. In my second year while studying chemistry, I was a part of a computational chemistry research project where we needed to use the school’s super computer cluster to perform various quantum mechanics calculations of which I still don’t understand half of. But what I did understand was how cool it was to type in commands in a console which made a huge computer crunch data.

This was my first experience with Linux. I learned the basic bash commands needed to talk to the supercomputer which in turn gave me data needed for our research project. This is where I started realizing that I truly enjoyed working with computers and it made me want to learn more and more about them.

At the tail end of my college career (well my first college career), I became extremely passionate about renewable energy. So I naïvely created a renewable energy consulting company. I made a website using the drag and drop website builder, Wix.com which was a landing page and provided educational resources for users on renewable energy. I quickly learned that designing the website was far more fun than trying to score clients.

As I struggled to find clients who would trust a 20 year old with “expertise”, I dissolved the company (it was just me), and found a job. It was at this job that I became known to make some sophisticated spreadsheet formulas and was the go-to person to help with advanced Excel functions. My confidence in working with computers and simple Excel programs sky-rocketed; thus throwing fuel on the campfire.

My passion for renewable energy dwindled but my passion for programming and computers became out of control. Out of shear curiosity, I started learning how to make your own website using React.JS, JavaScript, and HTML/CSS. This led me to make a few websites for fun and I quickly realized that if I could make this a career, I would.

The Forest Fire – Python and x86 Assembly

The conditions in my life were just right to produce a wildfire of passion for technology that I enrolled in Oregon State University’s Post-Baccalaureate program and began seriously studying how to control billions of transistors with the end-goal being a career in technology.

Python was the first real programming language that I became fluent in. It took a while to learn the ins and outs of object-oriented programming with Python, but it was worth it. At first, programming languages are complete hieroglyphics. But once you are able to read what the code does, it changes the game.

Being in OSU’s program forced me to talk to computers in a way that I hope I never will need to in my career. The course on Assembly taught x86 Assembly language and forced me to read and write code in a low-level programming language. Had I been self-taught, I would not have studied this on my own. Having gone through this course, I did gain a stronger understanding of how high-level codes is translated to a lower-level programming language which is then turned into machine language where 0s and 1s are flying everywhere.

Being able to create working programs is extremely rewarding and continues to spread my passion for technology. I don’t see this fire being contained for a while…

Feel Like Giving Up? Yeah me too. But Don’t!

CS467 Blog #4

Image by Free-Photos from Pixabay

Feel like giving up? Yeah me too. But keep pushing through.

Over the course of the past few years of this online program, I’ll admit I felt like giving up and throwing in the towel. There have been some challenging courses and specifically challenging assignments where I have run into a wall and was completely stuck.

It was during these moments where the storm clouds began growing over my head and the knot in my stomach grew tighter and tighter physically forcing me to wrench over in agony as I knew the deadline was approaching and I still had a non-working program.

I’ll even admit it, during these periods where I was stuck on a problem, I straight up cried in frustration and anxiety.

The dread continues to grow until it’s unbearable; to the point when you question, “why am I doing this?” Once you’ve asked yourself this question, prepare for the downward spiral of negative thoughts and emotions.

It’s during this phase where you question if you should quit.

When emotions are high and the pain is unbearable, quitting is a tempting offer to escape. Rational thought is diminished and poor judgement occurs making you genuinely consider throwing away all of the current progress you have made.

Don’t Quit 3 Feet From Treasure

Sharon L. Lechter & Greg S. Reid with the Napoleon Hill Foundation

Often it is the case where we get stuck and feel like quitting closer to the finish line than we know.

For all the times I was stuck, I took a 5-10 minute break to cool my jets and then got back to it in a lowered emotional state.

Through the times that I felt like quitting the assignment, the course, the program, I kept pushing. I sometimes failed to come up with the correct solution when I submitted the assignment, but I submitted it knowing I did my best. But I never gave up.

Just know it will be okay

It seriously will be! Just take things one at a time. Start with the hard things and if you get stuck, move onto another task, preferably one that is easier (like writing this blog!)

And always keep the big picture in mind.

Love Python AND Web Development? Try this!

CS467 – Blog #3

Image by Michael Schwarzenberger from Pixabay

You don’t live as long as I have without a healthy fear of snakes, Bobby.

Creed Bratton

Meet Django

Django is a full-stack web framework that makes it quick and easy to create highly extensible web applications. Django is a framework written in Python that allows developers to make fast, scalable, and secure websites. Django comes pre-loaded with modern security features that help prevent SQL injection, clickjacking, cross-site scripting and others. Since Django is an open-source project, security patches are continuously being released and vulnerabilities are often found quickly.

Django is one of the most popular Pythonic web frameworks around. (Flask is the other most popular Pythonic web framework. Perhaps another blog post will discuss the differences and when to choose one over the other…)

A lot of popular websites use the Django Framework or part of the Django framework.

Popular Sites that use Django

  • Instagram (ever heard of it?)
  • Spotify
  • YouTube
  • The Washington Post, The Guardian, and The New York Post
  • BitBucket (like GitHub)
  • DropBox
  • Mozilla
  • Pinterest

Source: djangostars.com

Structure of a Django Project (Model-View-Template)

Django utilizes a Model-View-Template structure which standardizes the way that a Django project is structured. This helps keep project files nice and organized as well as makes the logic of how Django works compartmentalized. The MVT structure is based on the Model-View-Controller (MVC) structure found in C#/.NET web applications as well as AngularJS and ReactJS libraries.

The Model (Think Database)

The Model is a Python class that is used to set up the structure of a single table in a database. With the models.py file within each Django application directory, you can structure the table any way you want. But instead of creating tables in SQL, you use Python and have Django’s Object-Relational Mapping layer do the heavy lifting.

The View (Think Backend)

Views contain the “business logic” which handles how data is created, stored, and changed. In other words, it handles the backend logic that takes data from the database and sends it to the frontend for the user to view/mess around with.

For example, the views.py file for each Django application directory handles the CRUD. That is, Create, Read, Update, and Delete operations on the data. The logic for handling the CRUD is housed within the views.py files.

Also, the views.py files handle rendering the templates and passing data into the templates for the user to view.

The Template (Think Frontend)

Templates are HTML files that contain the code that the user sees and interacts with. All of the forms, images, text are housed within the template files.

Django utilizes the Jinja2 templating engine which allows data from the views.py file to be passed into the frontend HTML pages. For instance, if you had a list of Employee names stored in a database and wanted to display them all in a table format, you would have an HTML template that contains a for loop requesting data from the views.py file which in turn requests the data from the models.py which in turn gets that data from the data base.

Like I mentioned, the Jinja2 templating engine allows for Pythonic for loops and conditionals to be inserted into HTML files bridging the gap between the front and back end.

Image of Jamie Foxx from the Motion Picture Django Unchained from Columbia Pictures

Tutorials

Corey Schafer makes a wonderful Django tutorial where he will guide you through making a full-fledge Blog website!

Here is Django’s own tutorial and documentation which is not as fun to go through as a video tutorial, but provides great insight on how Django works and where to go for help if something isn’t working quite right.

Give the tutorials a shot to learn how to use Django! If you run into any issues, leave a comment below.

Need a Way to Track Your Job Applications? Use This!

CS467 – Blog #2

Introducing….. Job Tracker!!!! (Name yet to be determined)

Yes, you read it correctly. A web application that helps you track all of your pending job applications and helps you get hired is currently under development!

As this project is my capstone project (and my teammates’ capstone project), we will be designing and developing a fully-fledged Job Tracker website where you can create an account, enter your jobs/internships that you are interested in applying to, track your skills to see which skills/tools you are listing the most in your applications, and you can keep track of your contacts for some next-level networking.

Tracking Jobs

I used to use a spreadsheet to keep track of all of the applications I had submitted. But this was a huge time-waster as I spent more time formatting the spreadsheet than searching for jobs!

The idea behind our website is that you can simply add a job/internship opportunity and keep track of which jobs require which skills and you can see how frequently those skills are noted within your applications.

Let’s say you found a cool job at an electric car company that rhymes with “Pesla”… You can create this job in your job tracker and perhaps mark it as, “application not started”. Based on “Pesla’s” job description, you can enter in the skills that are related to that job. If you are keeping track of multiple job opportunities, there will be (maybe) a dashboard showing you how frequently your skills are mentioned which can be an indication that you may need to brush up on certain skills over others.

When will this be released???

Drum roll please….

Image by Jill Wellington from Pixabay

This website will be released in December of 2021!

Where can I find it???

No idea. Check back in December for a link to the website.

How YOU can help???

Image by PublicDomainPictures from Pixabay

Leave comments below on what features you’d like to see in this website. Who knows… maybe we will decide to implement it and your input will be made into a feature!

Or Better Yet….

Help choose the name of the website! Leave a comment below with name suggestions. They’re just suggestions… and not a public poll. Those are definitely trollable…

If you are wondering who I am and why you should or shouldn’t care… click here.