2013-09-27

Share: What is so great about Computer Science?

"I don't know of any other discipline that makes you feel so much like a wizard. Even engineering doesn't really feel that way, because you actually have to do real work fitting things together and what not.

In contrast, when you program something, you're basically just muttering incantations and casting spells. Do it right, and incredible stuff just springs to life.

And the stuff you're manipulating is almost dreamlike. Take a simple bug fix, for example. The concept doesn't quite exist in other forms of engineering, because if you're building something physical, even a small design flaw is difficult to fix. You have to take it apart, whack stuff into position, and usually you just wind up realizing that it would be easier to rebuild everything from scratch.

Whereas for a computer scientist, that's normal. Change a few things here and there, and bam - your updated program bursts into existence. You can do this because manufacturing software is easy (compile and run, or some equivalent) - almost all the work and difficulty is in thinking of it and designing it. It's basically an abstract mental construct.

Also, if you're a lazy bum like me, you'll fit right in. All computer scientists worth their salt have a massive hatred of tedium. That's why we always want to automate and generalize everything! Repetitive boring work is for machines.

Case in point: I recently had to enter a bunch of data on a website. There was no nice bulk upload facility, so I was reduced to painstakingly copying and pasting stuff from my file into their forms. After doing this for about a minute, I came to my senses and remembered that I wasn't a Muggle.
 
Less than an hour later, I had a program that just mimicked all my copy/paste actions hundreds of times faster than me. Hours of tedious error-prone work turned into a few minutes. As a bonus, it impressed the hell out of people who passed by and saw me reading a book while a bunch of text fields magically filled themselves on the screen. (I may have put in a slight time delay just for fun...)

Like I said, CS makes you a wizard."

Source: Quora's Nadeem Mohsin


2013-09-24

Jobs Are For People Without Direction

Jobs are for people without a lot of self-motivation, without direction/strive, and without confidence in themselves.

This sudden thought occurred to me when I was hearing about some different job positions and what they entailed.

People with a job want to be told what to do, whether they admit it or not.

Self-motivated, self-directed people with strive and confidence have the ability to take their lives wherever they want to go, and do whatever they want to do. Each of these attributes play a large part in being able to get things done.

Because I have lived like this throughout most of my life, combined with the love of learning, I have been able to amass a great deal of raw and technical knowledge that typically surpasses the average. Though, I am not an expert in any one subject, I typically think that I'm above average in many categories, but don't most people?
So, the mentality I prefer is to give others the benefit of the doubt. This keeps me in the learning/student frame of mind so that I may better think less critically and more constructively.

Once I put my mind to something, things happen. So, that's why I believe that I would easily excel at any job. Maybe that is why I choose to have none? Because they are too easy for me? Even at a really technical job, after one month on the job, with my self-motivation and drive, I would easily feel comfortable on the systems. If I spent 2-3 months on something, then I would be an expert-in-knowledge (as opposed to an expert-in-application, which would involve actually doing a lot more of use-cases/test-cases.).

Then again, if this is seen as a rant, then it is quite possible that I am bias. Just keep in mind though, that I never consider myself better than others and I don't like to do comparisons either.

I'd like to hear others' comments.

 - Danial Goodwin -
Indie Developer

ps - Corollary: Jobs can also be for people who want quick money. ;)



2013-09-23

How To Get Started With SEO

(This post is for people who don't know anything about SEO - Search Engine Optimization - but are willing to learn. Warning: there are a few pro tips scattered in here.)

Here, I will talk a little about (1) the history of SEO, (2) how search engines work, (3) bad examples of SEO, (4) good examples of SEO, and (5) general tips on how to get better rankings for your website. This is by no means comprehensive. But, the information included here is something that every web developer (and app developer) should know. And, specifically, I focus mainly on Google Search, but just about every major search engine generally works the same. In an advanced SEO post I would talk about how different types of links are worth a different amount of "points" to the different search engines.


Quick History of SEO
I will make this long story very short, though a full story reading is very interesting. Basically: Internet, then search engines, those search engines became complacent, Google is created, Google is so much better that engineers at other search engines use Google, then everybody uses Google. Now, brashly, if you don't exist on Google, then you don't exist at all.

Google Search got popular with their unique method of ranking websites, known as PageRank. It is known for counting the number and quality of links to the website (aka backlinks). The idea was that the more links that pointed to a website, the more important that website was. But, that isn't entirely true now, which I'll explain more in the good and bad examples of SEO sections.

Nowadays, most "SEO engineers" focus only on Google Search, but I do know a few people that focus on Bing Search and Not-Google-Search. Which type of service you actually need depends on where your target market/niche is. Though, keep in mind that pretty much all the good and bad examples of SEO will affect all the search engines.


Very Quick Overview How Search Engines Work
Each search engine "crawls" the Internet using "robots" (aka spiders, aka crawlers). Basically, it is a program that clicks/visits on all links on a page and once on the next page, the "crawler" will repeat itself by clicking/visiting on all the links and so on until it can't do it anymore.

If your website doesn't appear on Google Search, then it is possible that none of its "crawlers" have reached your site yet and notified Google that your site exists. There's multiple ways to remedy that, but the quickest is to just submit your sitemap to Google.


Bad Examples of SEO
I include the bad examples first because they are MUCH more important to avoid, compared to following the good examples. In order words, the good examples are useless if you do any of the following bad examples of SEO.

1. The biggest thing that will hurt your site's ranking is paid links. NEVER purchase or trade for backlinks. (Explanation: Only good quality or natural/organic backlinks are beneficial to your website. Links from low-quality websites will hurt you rankings. These backlinks you could purchase are also pointing to spam/blackhat websites of which you do not want to be associated with. Also, a paid link website may look like it has good quality, but from a search engine perspective it will just most likely be duplicate content.) (Pro Tip (advanced/motivated readers only): There are acceptable/whitehat paid backlinks, but they require the rel="nofollow" attribute. These do not contribute to rankings.)

2. Misinformation. If you say that you have one thing, but deliver another. Your site will be considered spam and have a high bounce-rate. Search engines can detect this and demote (take "points" from) your site. This is related to paid clicks which some blackhat SEOs may mention. Don't pay for clicks! (Explanation: Technically, when your website shows up in search results, the more people that click on your page (and stay here! and don't hit the back button), the more "points" you will get that can raise your rankings.) (Pro Tip: Don't try to game the results, Google keeps track of all the IPs that click on links and with all their data, they can easily link spam clicks and self-clicks and discount those and possibly take "points" away if it happens too many time.)

3. Keyword spam (and other "over optimization" techniques). In order to show up in search engine results for certain terms/keywords, you will have to include those keywords in your website. Some people will take this to the extreme and have large sections of a site dedicated for only a list of keywords and keyword phrases. Google penalized sites for this. (Explanation: Too many people have been trying to game the search results, and gamed sites overall do not benefit the users) (Tip: Try to have a natural keyword density in your copy. I.e., when you read the copy (read: words) on your page, then it shouldn't sound weird.)

Summary: If you are unsure whether a particular method is blackhat (a bad example), then be on the safe side and don't do it at all until you know for sure. And, if a "SEO engineer" promises things that seem too good to be true, then it probably is.


Good Examples of SEO
Now that you don't have any bad examples in your website, you can focus on getting that positive ranking.

The biggest benefit you can have for adding positive ranking to your website is to have the mentality of "do what's best for your customer". I.e., What would your customer want to find on your website?
1. Make it easy to find the information they are looking for.
2. Good design (doesn't have to be great)
3. Fast load times.
(There are technical reasons to do each of these, but this is just an introduction to SEO. Let me just say that Google also wants what's best for the users/searchers.)

The next major optimization question to ask yourself when developing the site is: Why should Google put you at the top of the search results for your targeted keywords?
1. Users would want to click on your link.
2. Users wouldn't have to continue searching after finding yours. (If, after a Google search, your website is where the user ends up staying, then kudo "points" to you. Google will keep this in mind and possibly show your results higher next time.)
3. Users would want to +1 it, theoretically speaking. (This is the just meant to put you in the right mindset.)
(By being able to think like a search engine, you will go far.)

Summary: Have these two questions in your mind at all times and you can't go wrong. (1) What would your customer want to see? (2) Why should Google rank you number one? Also, everything revolves around the user (the person searching for your website). The best tip I can give is, do what's best for your users, all else will follow.


Tips For How To Get Better Rankings For Your Website
(Contact me if you would like to know more information about how to get better smartphone app rankings. There are a few similarities, but you are much more limited in the third-party Android's Google Play or iOS's App Store.)

This is basically the additional resources for SEO section.
1. ANALYTICS! It does not matter which service you choose, especially if you currently don't have one and are just starting out. Try them out. Everybody's going to have their own favorites, find yours. Some examples: Google Analytics for basic analytics, Crazy Egg for heat maps, open source web analytics, or your web hosting service may provide their own analytics, or more.
2. View your website in a text browser (read: look at the source code). This is basically what search engines will see. If you have keywords in your website images or PDFs, then search engines will not be able to see that text.
3. Pro Tip: Meta tags/metadata is not directly important to ranking; it does not influence ranking in search results anymore. BUT, the meta tags in your header do directly affect what your users see in the search results and the metadata may be the make or break point determining if they click on your site or not.
4. Pro Tip: Use Google Adwords Keyword Planner (formerly known as Keyword Tool) not for creating ads, but for knowing which keywords and keyphrases to target in your website.
5. SEO takes time to get into effect. I.e., don't expect instant results. Also, the earlier you start, the better.
6. Keep in mind that not all search results are equal. Google creates and shows customized results to each person. For some people you may rank 8, and for others you might rank 12.

Summary: The information in this post is only step one in search engine optimization. But, I will admit it is a big step for beginners. Focusing on these steps will get you at least 70-90% of the way there to the top. This is also the least technical part of SEO. More advanced SEO requires analytics to be done first.
For each part written in this post, I could write an equally long post explaining it further and offering more suggestions/ideas. At least now, you are more prepared for the world of SEO.


If this simple and direct style of explanation gets popular enough, then I will write more. Please leave a comment if you like it, don't like it, think it's too detailed, or doesn't have enough specific details. Thanks for reading, there is actually a lot more in here than I initially planned on writing. =]

 - Danial Goodwin -
Co-founder and Lead Developer for Simply Advanced, LLC

Note: My experience comes from years of staying up-to-date with Google Webmaster services, personal and third-party A-B testing, and as a computer engineer I know how the different programs/algorithms work and what they are capable of. I first became interested in SEO when I created my first website from scratch in grade school.



2013-09-22

Microsoft's App Studio

Today, I wrote two blog posts regarding a new product from Microsoft that allows anybody to easily and quickly create and publish Windows Phone apps.

Learn about it: What Is Microsoft’s App Studio?

Learn more about it: How To Edit App Studio Code

~ Simply Advanced ~



2013-09-18

Money In The Bank Is Freedom On My Back

"Money in the bank is freedom on my back."

I'd like to know what your first impressions are in the comments below this post.

(Now, the rest of the story)

This is the advice that I was thinking about giving my friend. Two more ways of putting it are "Money in the bank is freedom of choice" and "Money in the bank is peace of mind".

Basically, the point I want to get across is that you don't have to spend all of your money as soon you get it. Every time you buy something it is either consumed right away, or it is just something that you will have to worry about.

Then again, this could just be my personal biases coming out. I prefer to be more minimalistic, thus, I tend to think that it is more right to own less things. (Sidenote: I also like to keep enough tools on hand to be prepared for just about everything.)

If I had more money to spend, then I would want to put it into things that will last. Food and candy doesn't last. Electronic goods are one of my favorite and "required" purchases. But, probably even better purchases are experiences. Being able to do something that you haven't done before. Those are the things that are going to last a lifetime.

And, since I'm just free-writing now, probably the other best use of money is to spend it on things where the rewards/benefits are greater than the cost. I guess that just provides a good generalization for how money should be spent. Unfortunately, some people's idea of benefit can be greatly biased when thinking about themselves. So, to change up the generalization a little bit and reduce the bias just a little bit (this works for people who know they have bias), I have arrived at the following: Probably the other best use of money is to spend it on things where the benefits to others exceed the costs to oneself.

This was not to anybody in particular. Just conversing with myself... =]
~ Simply Advanced ~



2013-09-07

Topic: Engineering Titles

After a quick search on LinkedIn for the term "engineer" and elsewhere, I found the following. Any thoughts? Does it matter?

- Sales Engineer
- Design Engineer
- Design Quality Engineer
- Product Training Engineer
- Maintenance Engineer
- Support Engineer
- Security Engineer
- Marine Structures Engineer
- Landscape Engineer
- Transportation Validation Engineer

ps - I ask this from a neutral perspective and do not mean to belittle any job.

~ Simply Advanced ~



2013-09-05

Topic: Sleeping

I consider sleeping a hobby.

Some people like to do it more than other and some don't like it all.

Me.

There are sooo many other exciting things I could be doing or learning. Sleep is at the bottom of the list of things that I want to do in my life.

Statistically, people will sleep one-third of their life away. I really would like 20-40 years extra to life the way I choose.

But, I guess science (and my body) says I have to...

For now...

~ Simply Advanced ~

ps - For now, I guess I could also just call it "meditating all night". It is possible to figure out problems and solutions when lying on a bed.