Author Archives: Andrew Sychtysz

Tips on easing the learning process of JavaScript

After a long 2 and a half years of learning to code, there are many challenges I have come across that halted my process. Here I am going to sum some of the issues I may have come across during my journey. And some tips I have found to be incredibly useful to change the tides and direction of how I learn.  

                First things first, understand your distractions. Why you are distracted, and how to make “learning to code” the distraction for you. What I mean is, picture how you use your social media. You may think “I am just going to check Facebook for a few minutes before I get to coding”. Next thing you know, you are on Facebook for three hours. Where did the time go? Somehow, someway you just got sucked into what you decided to put in front of yourself. What if, you decided instead “I am going to just code for 10 minutes then play around on Facebook.”. Next thing you know, you got sucked into coding for hours instead of spending all your time on social media. It will always be better to leave yourself no time to look at social media than having no time to practice coding.

This is how you should structure all your priorities. Don’t treat yourself first in hopes that this will give you the motivation to start getting your responsibilities out of the way. There is a limited time in every single day. We all know, the longer the day goes on, the more tired and slow you become. Utilize your energy correctly. You should be treating yourself when you are already burnt out. That way when all your energy is dispensed, you are relaxing readying yourself to recharge rather than forcing yourself to continue working when you are exhausted. This will help with sleep issues too. Using your brain at maximum capacity is going to ultimately make it harder for you to fall asleep. Utilize your time correctly during the day.

Now your coding, great job! Only problem is, you may find yourself being over-confident now. Just because you have solved something and moved along with almost no hiccups, doesn’t mean you have that solidified it in your knowledge. Learning something quickly is the worst thing that can happen. This sets you up to forget very quickly. The most memorable thing for a person is when they struggled hard, overcame their adversity, and accomplished their goal. You forget a cakewalk the minute it’s over. Limit the number of things you are learning at one time. And practice it in code. That way, you won’t forget. The key point is to make your work memorable for the next time it comes up.

I found this site, which is somewhat a journal. That gives tips on how to learn JavaScript Faster. It touches on a lot of the things I just described.

Link: https://www.sitepoint.com/mind-tricks-to-learn-javascript-faster/

From the blog CS-WSU – Andrew Sychtysz Software Developer by Andrew Sychtysz and used with permission of the author. All other rights reserved by the author.

codegrepper.com

I used to believe that this was a pro in my coding abilities but the further I go, the more I realize that is actually a con. When I first started coding in CS140, I realized that I have had a unique ability when it came to paying attention to detail. When I am absolutely lost or confused, I will hammer the nail all day. Meaning, I will read every single character in every line of code before I decide that I am completely lost. This is great, time and time again I have proven that no code is a match for me. I always seemed to outwork my failure. Before the deadline passed, I had made sure that I submitted something that makes sense and works.

Once I started working on our latest Javascript homeworks, I realized that this is not helpful to me. I have managed to get my codes to work. And I have managed to get them to do what I needed them to do. That being said, if you asked me to explain the code in plain english I would struggle to do so. That’s because I just spent hours and hours playing around with the code. Instead of researching basics and creating a great fundamental understanding for myself, I just went for it. I believe life would be alot easier if I had this fundamental understanding before I began coding rather than trying to grasp it during coding.

Codegrepper.com is something I found while researching these fundamentals. It seems that I have came across a gold mine. This link right here specifically helped me work on the get method within my javascript for the HTTP Get request.

https://www.codegrepper.com/code-examples/javascript/javascript+find+object+in+array+by+property+value

Immediately you have a code snippet of javascript which finds object in array by property value. And it begins to build up. It shows you how to find object by property. How to find ID in an array javascript. And so on. This website also has a search engine that allows you to search anything. It seems to be an incredible tool, especially when learning new languages. If you type “hello world”, it gives you the intro code snippets for any language you can think of. I will definitely take more use of codegrepper.com moving forward.

From the blog CS-WSU – Andrew Sychtysz Software Developer by Andrew Sychtysz and used with permission of the author. All other rights reserved by the author.

API Development in the Field of Computer Science.

Dear Classmates,

Please consider making a LinkedIn as soon as possible. Take a look. The amount of job listings searching for someone with a B.S. in Computer Science is incredible, especially in regards to API development. An API developer can make a phenomenal salary. What we are doing currently in CS343 is so extremely important for our futures.

APIs go back to the early days of computing. Even before the personal computer. It was normally used as a library for operating systems. It was always local to the systems, although sometimes it did pass messages between mainframes. Eventually APIs left the local environment. And became a very important piece of technology for remote integration of data.

In class, we worked with 3 sets of codes so far. The Items API, Frontend, and Backend. These all work together to create our Application. The ItemsAPI is a specification. It creates our Items. The characteristics, fundamentals, and how the object is going to preform. It will allow both humans and computers to discover and understand the capabilities of the service without access to source code, documentation, or through network traffic inspection. When it is properly defined, a consumer can understand and interact with the remote service with a minimal amount of implementation logic. The Frontend/Backend model is a way of sharing or organizing an application’s workload. Every application has a frontend and a backend. The frontend is the part of the application that receives input from a client. The backend is the part of the application that processes information, such as processing a payment or looking up customer information. These often communicate with each other. For example, the frontend will allow users to interact by providing credit card information. And the backend will charge their cards for purchases. The frontend receives input. And the backend processes the information.

This will be so absolutely huge for us in our futures. Think about it. Almost every business at this point has a website. You could easily find yourselves making 50k, 90k, 120k, etc. managing these businesses Web service/Applications. As we saw with COVID, there was a massive push to doing almost everything through technology. I can assure you, there will be millions of businesses looking for people like us. And you will be such an important backbone to the business. They will have no choice to give you the Salary you deserve. Please consider making a LinkedIn as soon as possible. Also, do your best to live inside our applications Professor Wurst has supplied for us to work with. If we learn to be comfortable with this type of work, we will absolutely find success in our field.

Thank you and Good luck! ?

From the blog CS-WSU – Andrew Sychtysz Software Developer by Andrew Sychtysz and used with permission of the author. All other rights reserved by the author.

Full Stack Web Apps

Recently, in our “Software Constr, Des & Arch” class, our Professor has deployed two projects for us to play around with. One called “API”, and one called “Back-end”. This is the first time during our Computer Science program, we have seen a project that involves multiple computing languages. To get it to run, you need all environments to be installed. The project comes with Docker Files. Using Docker on our machines, these docker files tell Docker which environments are needed to run the project. And it will install them for us. Without Docker, each one of these environments and extensions would need to be installed manually. Docker automates this process for us.

Although we are still in the early stages of playing around with the “API” and the “Back-end”, we should be able to understand what is going on in our machines as we install and deploy these environments. We have a Dockerfiles which are used for the base image for the backend. and the test runner. We have 3rd party JavaScript libraries for the backend. And more like, yarn to handle these dependencies. All of these are needed for the entire project to run. It does not work if any one of these environments are missing.

Although I am claiming this all as a project, the true description would be a Full Stack Web App. The API and the Back-end work together systematically to bring this Web Application together. Essentially what we are trying to do, is build a Web Application that automates the process of running a Food pantry online. This Web Application will allow the users to create accounts and sign in. It will allow the users to place orders or donate food. All the actions the outside users do, will affect our Database. Our Web Application will have scripts that automate this process. Allowing us to safely share/manipulate our database of food with the outside world. Where the users request changes and we can safely make these changes.

This tutorial gives insight on how to build a Full-Stack Web App using Springboot.

https://milanwittpohl.com/projects/tutorials/Full-Stack-Web-App/the-backend-with-java-and-spring

Springboot uses gradle to build the project. And also manages the dependencies needed to run. Although our App is a little different, the idea is still there. And in this link you will find a little more description for some of the components of our project. Because is shares similar components used in this tutorial.

From the blog CS@Worcester – Andrew Sychtysz Software Developer by Andrew Sychtysz and used with permission of the author. All other rights reserved by the author.

Back to the Basics: Inheritance Vs. Abstraction

When it comes to coding in Java, Interfaces and Abstract classes may be referred as a part of the basics. These are concepts you must understand to pursue the coding of Data Structures. That being said, just because you are able to code Interfaces and Abstract classes, doesn’t exactly mean you understand it completely. Just because a Code compiles without error, does not mean there aren’t mistakes in the code. It also does not mean these concepts were implemented correctly. Although these are basic concepts, it does not mean they will not appear in a future interview. You will know you have a confident understanding when you can explain these concepts through word of mouth without referring to a cheat sheet.

Since I believe this question will come up in any Software Development Interview, I decided it would be a good idea to write about it and attempt to concrete these ideas in my mind. If I were to put a key difference between Inheritance and Abstraction, I would say that Interfaces are to Standardize, and Abstraction is to Generalize. With an Interface, you are creating a methodology of creating a new class. Your interface will create standard properties and methods which can be reused in an existing class. It helps to improve code reusability. While your abstract class is a concept that hides implementation details and shows only the functionality to the user. Meaning it defines the code identity of a class. It is used for objects of the same type. While an Interface only defines peripheral abilities of a class, it only provides a signature and not any code. Abstraction is meant to help reduce the complexity of the code.

To nail the interview question, start with the largest differences and work your way down to the more subtle ones. Abstract classes can only extend one Interface while an Interface can extend several Interfaces. You can define fields in Abstract classes while you cannot in interfaces. Abstract classes work at a faster speed. You use Abstraction to avoid independence. While you use Interfaces for future enhancement. Abstract classes contain Data Members and Constructors while a Interface does not. An Interface cannot have access modifiers, everything is public by default.

To further educate myself, I found a great Youtuber of the name Gabriel Zimmermann. Who is actually does interviews at his Software Company. He gives a great video on how to answer this question if it comes up in your interview. As well as a detailed explanation of this topic to help someone learn for themselves!

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

Andrew Sychtysz

10/19/2021

From the blog CS@Worcester – Andrew Sychtysz Software Developer by Andrew Sychtysz and used with permission of the author. All other rights reserved by the author.

A little bit about myself.

Hello everyone! My name is Andrew Sychtysz. I am currently a senior at Worcester State University in the process of receiving my BS in Computer Science. With a concentration in Software Development. I am a Polish American that was born in Ware Massachusetts. I speak both English and Polish.

I have a great appreciation for Computer Programming Languages. I found a passion for technology at a very young age. When I first started coding, I realized that this was something I wanted to pursue for the rest of my life. The first language I began working with was Java. Once I found myself getting comfortable with Java, I became more fascinated. As I learned about Data Structures in Java and pursued the C programming language, my world began to change.

My aspirations are to work in the Software Development field and better myself as a coder everyday. Writing Software is such a beautiful concept to me. There is always something new to learn and different ways to improve. I plan to continue growing as a coder throughout the rest of my life.

CS@Worcester, CS-343

From the blog CS-WSU – Andrew Sychtysz Software Developer by Andrew Sychtysz and used with permission of the author. All other rights reserved by the author.