My Coding Place logo

The Source Code

A Blog on Learning Coding and STEM skills

Updated: Oct 26, 2020

It is common today to hear the terms 'coding' and 'computer science' used interchangeably, which leads people to believe they mean the same thing. They are related, but pretty different and should not be confused with each other. Computer science involves coding, but coding does not always involve computer science. I've heard it said that computer science is what you pay to learn and coding is what you get paid to do. If a child enjoys or excels at computer programming, they may think that they want to continue pursuing and studying coding in college. However, coding is not a major or degree program, and people interested in coding can sign up for Computer Science degrees and have the opportunity to do a lot of coding.

Coding, or computer programming, is the act of writing instructions for a computer to execute. Coding requires knowing the rules of a programming language and writing code, or instructions, in that language, in order to solve a problem. Why should kids and adults learn to code? Because it's fun and helpful to expand the way we think, similar to learning a foreign language. Coding is very practical and a useful skill to learn.

Computer science, in contrast, is a mathematical science and deals with the theoretical foundations of information and computation. Computer science is theoretical and was around before computers were created. It involves the study of compilers and architecture, operating systems, number systems, algorithms and algorithmic efficiency. If you are wondering why coding using a specific approach is faster than a different approach, computer science can explain that. You don't need a computer science degree to be a programmer, but a programmer with a CS background will have a better understanding of the behavior of computer programs.

In summary, people use these two terms interchangeably but it's helpful to understand that coding and computer science are different and to identify which term is most appropriate for the author/writer in their context. Studying a subject in college? Computer Science. Learning the rules of a language? Could be either. Learning a sorting algorithm? Probably Computer Science unless you are just sorting for fun. Taking a test? Could be for a coding interview or for Computer Science. Note that a Computer Science degree always requires coding, and that is why any of these actions could involve the Computer Science discipline. Coding is learned in Computer Science classes, but it can be learned outside of class too. The simplest way to think of the difference is coding is a hobby, interest, and activity, whereas computer science is a science and field of study to understand the mathematics and principles behind coding.

Updated: Oct 26, 2020

Who ever thought AOL would die? Or Kodak, MySpace, and Hotmail? Five years from now, we can't even anticipate the latest AI or AR innovation that will power our homes, but our students tell us in camps and coding classes that companies like Apple, Google, and Facebook are not going away because they are leading innovation. That is true currently, but who ever thought Venmo would become a verb? Who could have imagined that Netlfix's streaming service would eventually overtake their DVD-subscription service? These young kids have never played Oregon Trail or Winter Olympics on a black and green screen on a Apple IIe. They've never had to wait for dial-up connections to be made or seen mobile phones that don't fit in their pocket. How does knowing about these older technologies benefit them? Are we teaching languages and technology that will not be relevant in their future?

First, coding is becoming more popular as software engineering talent is in demand. Coding is a new literacy that teaches problem-solving which is valuable no matter what language we use to teach kids to code. Once they understand the concepts, they will easily be able to pick up other languages. Our teaching approach fits how real developers learn new languages, by building something practical and applying their knowledge. The culture around technology and learning to code is something that kids should embrace in order to open their eyes, open doors, and get them curious and asking questions about the exciting developments around them.

Secondly, learning about technology that will later become obsolete is like learning about history. We study social events in school, why not the history of technology so that we understand how we arrived at where we are today? The evolution of technology is as interesting as the history of our country. You can study the invention of electricity, refrigeration, cars, phones, and the Internet. Today's innovations are changing the way we live, with Ring doorbells, Nest thermostats, smart watches, and smart devices. General knowledge of where we came from is relevant and makes a well-rounded individual.

And lastly, everyone who learned coding as a kid and marveled at the Apple IIe has nostalgia about Basic and their first language. To be able to participate and relate to that feeling makes a person feel like part of a community. These days, when Minecraft and Roblox is all the rage, I wonder ten years from now when they are no longer popular, if kids will reflect fondly on these games and think they played a significant role in their childhood.

In summary, while it's likely that the technology of today may not be present when kids are older, learning about the latest trends helps them appreciate and evaluate new trends, gives them an understanding of the rich history and evolution of technology, and helps them belong to a growing community of young developers and innovators.

Updated: Oct 26, 2020

It's my turn to be a consumer. I've worked in training, consulting, and sales engineering at three software companies. They were all enjoyable in their own ways but I probably enjoyed Post-Sales better than Pre-Sales, where you are trying to win the business. Post-sales was rewarding in that you were trying to teach the customer how to use your software and to support them during the migration and implementation process. Pre-sales involved trying to convince a prospective customer why they should choose you. This post is mainly about pre-sales though I do address the importance of services.

Yesterday I spoke with Salesperson A who had confirmed that they could meet my full list of requirements and share best practices, yet when I got on our two sales calls, it was clear that the software couldn't meet my requirements and he came across as condescending asking me why I did things the way I did. Contrast this with Salesperson B at a different company who was also missing features I am searching for but said that they are always adding new features and bringing up gaps to the Engineering team. She also suggested workarounds which is what I was looking for. Salesperson A was clearly trying to smooth-talk me, while Salesperson B was trying to understand my business and processes and doing her best to address them with her solution.

Having experience working at software companies gives me the desire to ask questions about the company itself: how long they have been in business, how many people are on their support team, and how many customers they have. Although I would love to get in on the ground floor and grow with a company, my priority is my business and my customers. I would rather make sure my operations are running smoothly rather than get a good deal from a company that is trying to build up its customer base. So knowing about the company itself rather than just about their product is helpful since I would have a relationship with their team. As a salesperson, it is good to have this information; financials would also help illustrate how knowledgeable you are about your company.

It's brutal out there. There are many types of scheduling systems and learning management systems so it's hard to differentiate on anything but price before a demo. I began this process by requesting demos thinking they are less time-consuming than doing a trial and reaching out to someone with questions. While the demos are a quick way to get someone on the phone and make sure questions are addressed, I'm hesitant to encounter someone like Salesperson A who was trying to spend as much time with me as possible without any substance or proven ability to meet my requirements. My latest approach is to try the software first so I can find the features I'm looking for, but some sandboxes are slow and some require support to experiment with tasks. However, I still prefer testing myself first before scheduling a demo so I can weed out solutions that don't meet my requirements.

The takeaway from all this, should I ever return to the corporate world, is that first and foremost, the people making the decisions on the other end have a lot to manage so please don't waste their time or yours. Secondly and on a similar note, the demo is very important so make sure it's executed correctly. All the demos were scheduled for 20-30 minutes but they always went over time with some salespeople explaining irrelevant material. Salesperson A was trying to highlight the effectiveness of Users and Roles, which was very annoying because obviously all software allows users to set permissions for particular roles in a company. Make sure you stay on point. Next, sell your services. It's not just about the product but also what kind of support you can offer prospects after the deal is done. And lastly, differentiate yourself during the sales process by understanding requirements. Even if you don't have a specific feature, come up with workarounds so that the prospect knows that you understand what they are trying to do.

Happy Selling! May the best solution win my business!