Life Advice

Life Advice

Monday, May 9, 2016

Job Posting

Background Information 

The employer I will be researching is Omnibyte. They offer an internship in Fargo, so I thought it would be the perfect candidate for blog 8. Omnibyte services are encompassed in commercial assistance apps. The apps are promised to be more adaptive and progressive than any other app development company. The company wishes to automate software from machine to software, software to software, or software to human through apps. Meaning, the software/machinery will update through an app when issues arise. Alerting employees when a failure is imminent or occurring. Omnibyte designs apps for construction, equipment, electrical, plumbing, energy saving, and many other types companies. They provide assistance in the form of business analysis, software modification, data migration, application upgrades, and integration. The company is solely located in Fargo making it locally owned. 

Requirments

The posting itself describes a software engineering intern position. The intern will work on the initial product conception to the final version of the app. He/she is required to implement design modifications, develop proper test codes, write scripts, and utilize interfaces. In addition to the coding, he/she will write protocols, documentation for the application, debug, and conduct a performance analysis. There are stipulations for the position including: being actively enrolled in a computer science degree as well as possessing a minimum 3.0 overall GPA. 

Useful Information Gathered

The job posting seems relatively laid back. They do not specify which programming language they will be writing in, nor the framework they are working in. They seem to be recruiting individuals who are simply excited to work and are driven to finish projects. There is relatively minimal historical information regarding their accomplishments; seeing that they are a new company in the area. Therefore I am not able to question previous students who have been hired or refer to accomplishments I should strive for.

With the information above I will construct a cover letter and resume that is tailored around portraying a strong inner drive and work ethic. The company places a large emphasis on these traits and so will I. In addition to that, I will also outline how I meet the qualifications of being enrolled in a Computer Science degree and 3.0 GPA requirement. For my actual resume I will outline previous jobs and the responsibilities I had in those positions, since they place a small emphasis on the coding experience itself. My prior experience will show that I am able to manage my time effectively and work in a group atmosphere. Also simply presenting myself in a professional manner through my writing is beneficial.








Sunday, April 10, 2016

Group Work and Colaboration



Group projects are an extremely large aspect of the computer science field these days. Projects span hundreds of thousands of lines and implementations are simply too advanced for one man/woman to handle it singlehandedly. The solution is a code repository. A code repository is a database with a compiler the stores a massive amount of code. The repository allows the group members to work on their own separate computers, at the same time, and from anywhere. Many repositories have stipulations for submission. If the code isn’t indented perfectly, use proper variable identification, or have all unchecked errors handled, it won’t submit. Every business that sifts through large amounts of code daily un-doubtfully uses a repository. Google has over 2 billion lines of code in their repository according to Wired.com.

Group collaboration is crucial for a project. The work must be divided up amongst the members. The earlier on the better. With a clear division of responsibility everyone can focus on their portion. In addition, the individual can specialize in that field of the project. This is great aspect of dividing up the work load. They will be able to develop the best algorithms, ideas, and implementation. Weekly or daily updates for progression is another major key. With updates, the workers are kept on schedule and will help gauge when the other puzzle pieces may finally begin to assemble. If one portion of the project is particularly difficult it will be prominent in the weekly updates, and other members can assist them.

Usability was a central discussion for the group when deciding the topic. The subject needed to be relevant to the three computer science majors and the one mechanical engineering major as well. In addition to that stipulation, another requirement was the interest level of the topic. The group wished to choose a topic our classmates would enjoy. The questionnaire was the implementation of usability testing. We created questions that would increase our understanding of the audiences’ opinion of the webpage. Also, it allowed the group to gauge how well our ideas were standing up. The questionnaire had a rating scale on every proposed “fix” to the website. This was useful, because we were then able to discern whether we actually needed that change.



Design was perhaps the most important aspect of the website selection process. Design is a major pull/push factor for websites. If the design is on point it may entice the viewer to stay longer than they normally would and explore the site more. The individual may also recommend the website to a friend or coworker with similar interests or problems. The design on a website includes: font size, font, alignment of pictures and links, color, information placement, and toolbar layout. The developer needs to pick a design that pleases many types of people from all across the globe. It’s a very difficult task but some have developed the perfect layout for their product. Facebook is a perfect example of just that.

Saturday, March 5, 2016

Usability Testing



According to Usability.gov a usability test evaluates a product, or service’s, effectiveness in the hands of users. Typically, the user will perform the task as he/she follows instructions, but in this class our scripts and videos were not finished. Therefore, we were only able to collect quantitative data on script direction. The usability test gathered information on task difficulty, their customer satisfaction level, possible improvements or changes, and objective goals.
Possible candidates for a usability test include classmates, peers, and perhaps professionals. It is important to gather information on individuals who aren’t familiar with the task, or have minimal knowledge on the topic. They will provide a baseline of easiness/proper instruction for newcomers. Professionals can critique any missteps or improvements that can be implemented in your product or service. Both sides of the spectrum are important to attain in fully encompassing usability test.

Introduction

In the video I will be showing the viewers how to zip and unzip a file and send it through google drive. The benefits of using this method include: not needing a USB, proper information transfer, and accessibility. Google drive provides users with a large amount of free space that many individuals do not take advantage of. Google drive is also available anywhere with an internet connection. The versatility of this method for data transfer is astounding. 

Objectives

The objective is to provide a safe and efficient method for transporting files. We also wish to familiarize users with zipping and unzipping files, as well as the google drive lay out.

Method

My draft resembles the final product. However, it should include more humor and user direction. I will definitely incorporate better Google drive template explanations. My target readers should be students and people needing assistance with data movement. The users will be at home, at school, or anywhere with a computer access. I will rate their satisfaction upon how fast they accomplished the task and a difficulty rating they provide.

Results and Discussion

My questionnaire can be viewed bellow: 
--------------------------------------------------------------------------------------------------------------------------

In my video I will be zipping up file, saving it to a google drive, and unzipping it on another computer. The process is designed to transfer files without the use of a USB. The only requirement is a computer with online access and a google drive.

Do you feel that you are able to complete the task?




How long, if you had to guess, do you think it would take?





How satisfied would you be with the end product (safely transferred file on another computer)?





Would you recommend any changes to improve user performance and satisfaction?




--------------------------------------------------------------------------------------------------------------------------

Nick said, “The script was a little vague, but I’m sure a visual representation would clear everything up.”

Due to this comment, I will include in depth Google page layout explanation. Also a highlighted cursor may assist the viewer.

Ben said, “My humor was off flavor.”

Seeing this I should watch more standup on Netflix, in order to spark inspiration and ideas. In addition, I could leave the humor department to Ben.

Nick also stated, “My explanation of Google drive was quick and to the point. I also believe I could complete this task quickly. I might have to try it out!”

My explanation of Google Drive is good and bad at the same time, for Google Drive has many options that the viewer may desire to find out more on. However, this is a video on just the file sending process. So I need to be quick and to the point. Nick’s affirming his ability to finish the task is a response as well. It means I’m on the right track. 

Conclusion

In conclusion, the peer review was extremely helpful in discovering what I needed to improve upon. My script needed development in clarity, humor, and direction. I will take advantage of a usability test in the future for other projects.

Quantum Computing




Computer Science has had an age long thorn sticking in its side, are P (polynomial time) problems equal to NP (non-polynomial or exponential time) problems? NP- Complete problems, or NPC, could potentially take an immeasurable amount of time to solve. NP problems can be reduced to P or polynomial time, in certain situations. However, the gap arises when we aren’t able to reduce every situation to a P case. If we can’t simplify, the program could potentially run infinitely. Quantum computers may bring a resolution to the NP reduction issue. They may also bring about faster computational prowess and change the paradigm of personal computers.

Quantum computers have been theory crafted in laboratories for a few decades and have just recently come into the public’s eye. Yuri Manin, a renowned German physician and mathematician, first proposed the concept in 1980. An entire bibliography of Yuri’s life can be found here. Quantum computers have qubits. Qubits implement superposition in order to take on many different states simultaneously. Therefore, the computational ability of a single processor is increased exponentially. The only downside to this – the bytes don’t have a state until they have been read in. This is troublesome when determining a byte pattern beforehand. Creating a readable string requires the byte state to first be known; without this knowledge, they aren't fed through the correct resistors. 

The unreadability of a qubit prevents their hostile takeover of current personal computers. They flip up or down depending upon the electronic field charge. Due to current understanding of quantum physics, we aren’t able to know the position and state of the molecule simultaneously. This severely inhibits personal application. In the near future, technology may allow us to decipher the state before being read in. Nearly 8,000 articles were published last year alone on the subject of developing a universal quantum computer according to Tech Crunch. If this reality comes to fruition the personal computer will become obsolete and a new age of technology will dawn upon us.

Quantum computers are able to conquer NP problems with ease. A 64 qubit quantum computer has the equivalent computational capacity of a 2^64th power personal computer. In a personal computer 3 bytes can only store 1 of 8 possibilities of 1’s and 0’s. A quantum computer with 3 qubits can be all 8 possibilities at once! With each addition of a qubit the possibilities double. Thus where the 2^64th power increase comes from. With practically 18 billion times more bytes, exponential and undetermined mathematical algorithms can be solved within seconds. The mathematical calculation and in depth explanation of quantum computation is explained thoroughly in the Tale of Two Qubits. Computer scientists would no longer need to optimize algorithms. We aren’t able to prove P = NP, but NP and NP-Complete will become an obsolete categorization of problems.

Even though quantum computers are still far from where they need to be, they have come leaps and bounds since they’ve been conceived. They are the solution to NP problems and will propel us to faster computational speeds. In the next ten years we may possibly see a personal quantum computer! I do believe they are humanity’s next age of progression, and will reveal many questions pertaining to the universe.








Tuesday, February 9, 2016

Intro

Computer science is one of the fastest evolving fields of science. It deals with mathematical algorithms, structures, processes, storage, communication, and methodical procedures of code. The syntax (sentence structure and symbol order) is specific to each language; however, they all implement the same overarching techniques and structures. The languages also specialize in their application according to Mashable.com . Java and C are general purpose languages that are found, essentially, in everything. Objective C is coded with Apple operating systems. PHP is the industry-standard server scripting language. These are a few important coding languages.

The prominent computer science niches are hardware, networking, graphics, programming languages, software engineering, and artificial intelligence. Hardware is intertwined with the circuits and chips of motherboards and accessories. The experts attempt to improve design and efficiency. Networking covers device connectivity and system networking. They improve network traffic, protocols, and information sharing methods. Graphics encompass the entire advertisement and entertainment industry. Animated movies, visual effects, and 3D films are all thanks to these hard workers. Programming languages are the building blocks for the rest of the fields. These individuals attempt to optimize algorithms, design new languages or better implementations of current paradigms. Software engineers generally work in large sectors, all coding the same project. Finally, artificial intelligence is underlying in all previous fields discussed. The AI developer strives to create a program that recognizes patterns from the input. Examples include: search engines, software, space craft, medicine, networks, robotics, and data mining.

All these fields share a common interest – provide a service to the public, revolving around computers. Almost every piece of technology has embed code that allows it to accomplish its task. Computer science has single handedly forced humanity into a new era of technology. Robots, machinery, phones, the internet, transportation, house hold appliances, and software, are all made possible through computer science. It is truly awe-inspiring.

A computer science connoisseur has many interests and personality characteristics; however, one aspiration is paramount to all. Develop a product that can accomplish the same or better performance in less time. The complex algorithms that run each program stretch thousands of lines long. Each algorithm is located at a point on an efficiency scale. The best performance is constant and the worst is 2n. Striving to attain the constant performance is every developer’s goal.

Computer scientists are constantly brainstorming new ideas/products. The internet is a playground for the computer scientist. Any idea can be made into a reality with a little hard work and knowledge. Facebook was pioneered in a college dorm room! This demonstrates the flexibility and autonomy of computer science field. I am glad to be a part of it. 



Mac Vs. PC

The age long question of apple or pc has plagued the general public, as well as businesses, for decades. The decision, over the years, has become much more than just a hardware choice. Your choice doesn’t just show case your preference, but represents your personality and lifestyle – something the younger generation places a large emphasis on. Mac users tend to be millennials or startup companies; while, PC users are typically to more technically intense individuals. The benchmark swaying factors include security, price, quality, upgrades, gaming, and reparability.



Security

The security of a laptop is paramount to protecting personal information and keeping the software running at optimal speeds. Macs have deceptively strong firewalls, for PC’s have dominated the market up until 2010. Hackers designed Trojans and malware targeting the largest user base – PC users. The Mac users are now seeing a surge of viruses tailored toward their operating system because of their uptick in recent sales. The Mac developers are inexperienced in combating viruses so they may crumble in the future, but only the test of time will yield a true answer. According to Stack Exchange the backwards compatibility of PC's are their downfall. Nonetheless, the PC users have nothing to fear. The PC users have nothing to fear because the anti-virus software business is flourishing with multiple options to choose from. I myself own a FREE virus program, which hasn’t let a single attacker in to date. PC is the safer choice in this category.

Pricing and Quality

Pricing and quality are two of, if not the most, important pulls for home users. The general public typically doesn’t wish to spend over $1,000 on a laptop. PC laptops have been gravitating towards cheaper and more affordable parts ($500 or less); however, there are top of the line models that cost a pretty penny ($1,500+). The heightened cost comes with superior speed and visual prowess. On the other hand, all Mac models cost around $1,000 and are all built with quality components. The apical model of PC’s outperform the Mac counterparts considerably due to overclocking potential. For a more in depth analysis of parts to parts performance and pricing, check out Computer World. If you wish to select from a wide price and quality range, I would choose PC.

Upgrades

Upgrades are a necessity in the ever evolving field of computers. The maximum life span for parts is around 5 years. Technological advances in operating systems, graphics, and networking will bottleneck older models. Macs have horrid upgrade paths. They are linear and typically extremely expensive because Mac is the only company that develops the parts for their machines. On top of that, you must send your computer in to a certified Mac store for the upgrade. Even though it has its drawbacks, the mac upgrades are quality and always compatible. PC’s have a vast upgrade market. This drives prices down and provides a home upgrade option (an aspect many owners crave). Having multiple upgrade routes is another enticing pull factor to a dynamically changing industry. I side with the PC market; simply because, with a little research and knowledge you get better performance for less money. The customer also gets to select the model.

Gaming

Game is life, game is life. To some this saying rings true day in and day out. Only the fastest, vibrant visuals, and optimally precise computer wins the battle. At high level competitions, with cash prizes topping above 20 million dollars, computer performance effects gameplay significantly. Macs don’t contend in this category. Some game developers don’t even release in a Mac platform. PC wins the gaming category unequivocally.

If we look back and tally up the winner for each category, PC wins unanimously. They have such a wide range of appeal. Macs may overtake them in the future, but for now PC’s are top dog.

The Titans

The pioneers of any field of science have cleared the jungle of uncertainty for the rest of us to follow. They are unwavering in ambition and commitment. These people are also responsible of altering the path of computer science forever. Three of the biggest names are Tim Berners-Lee, Sergey Brin, and Mark Zuckerburg.


Time Berners-Lee

Tim Berners-Lee is responsible for creating the World Wide Web , also known as the internet. He accomplished this in 1989 when he transmitted a message in HTTP. One year later he designed the specifications of URLs, HTTP, and HTML, cementing their stay as the web template. In 1994 he founded the World Wide Web Consortium. This propelled the internet to its full potential through guidelines, software, and tools. At MIT he became one of the founding professors at the School of Engineering jointed with the Department of Electrical Engineering and Computer Science. Lee is currently a professor at the University of Southampton in UK. Queen Elizabeth recognized Lee’s accomplishments and knighted him in 2004. If you wish to develop a deeper understanding of Tim Berners-Lee’s internet visit Stanford.edu

Sergey Brin

Sergey Brin, along with Larry Page, invented Google. The world’s first web search engine that successfully implemented a data mining algorithm that ran on popularity. The search engine was so pioneering that it is still used 15 years later! Amazing. The duo coded in a garage with one other employee for a year to bring their vision to fruition. Fast forward to additions such as Google News, Google AdSense, Gmail, and Google Map, Google has become one of the Internet’s greatest force to be reckoned with. According to Rachel Potvin Google’s code manuscripts run 2 billion lines long; the longest single piece of code ever created and maintained. 


Mark Zuckerburg

Mark Zuckerburg is the man who illustrated Facebook. Currently, Facebook is the largest social network in the world. It all began junior year of college in Mark’s dorm room. After releasing FaceSmash, three individuals approached Zuckerburg with the building blocks for Facebook. Facebook was up and running in less than a month short after. The rest is history. Mark wished to create an open information flowing medium for the public to have full control over. He desired to combine pictures, status updates, links, videos, instant messaging, and video games all into one package. Mr. Zuckerburg has connected the world like no one has ever before.

Minorities In The Field

Raji Arasu is the former VP of Engineering at eBay and the Chief Technology Officer at StubHub. We have him to thank for many of the upgrades and services they provide. 

Anu Garg is the founder of Wordsmith.org, an online community that is comprised of word lovers in 200 countries. It has services that email the subscribed a new word everyday. The website has also published many books. 

Interview

I interviewed local expert Alex Rademacher. He was my CSCI 160 professor and my favorite in the major thus far. As a kick off question I asked,

“Where do you see the field of Computer Science moving towards in the future?”

Rademacher replied, “I see more development of AI’s and better data mining algorithms. The world is speeding up exponentially. Nobody wishes to wait. So, the best way to ensure more computer scientists is to start educating in middle and high school.”

Moving on I asked, “What kind of professional writing encompasses a job in the field”

“When finishing a project it is crucial to design an API for the methods. Without it, future developers will become bewildered in the sea of code. On top of API’s, framework data and system requirements are a necessity. Depending on the job specification, you might not have to write any of these documents," Alex exclaimed!