@rob_rich

A Programming Career

by Mr. Richardson

@rob_rich

https://robrich.org/

About Me

Mr. Richardson is a software craftsman building web properties in ASP.NET and Node, Angular and React. He's a frequent speaker at conferences, user groups, and community events, and a diligent teacher and student of high quality software development. You can find this and other talks on https://robrich.org/presentations and follow him on twitter at @rob_rich.

A Programming Career

SQL


SELECT TOP 25 FirstName + ' ' + LastName, Email,
Grade, Address, City, State, Zip
FROM dbo.Student
WHERE Grade = 12
ORDER BY LastName, FirstName DESCENDING
					

SQL (pronounced SEQUEL)
is a language for reading databases

HTML

<html>
<head>
  <title>This is the text on the browser tab</title>
</head>
<body>
  <h1>This is the page title</h1>
  <p>This is a paragraph about the cool page.</p>
  Link to another page <a href="http://www.somesite.com/">here</a>
  <small>This is small but you can still read it.</small>
  This text is <b>bold</b> and this is <i>italic</i>.
</body>
</html>

HTML (Hypertext Markup Language)
is a language for writing web pages

JavaScript

function factorial(num) {
  if (num < 0) {
    return -1; // reject invalid input
  }
  if (num === 0) {
    return 1; // 0! => 1
  }
  return (num * factorial(num - 1)); // 5! => 5 * 4 * 3 * 2 * 1
}

var result = factorial(8);
console.log(result); // 40320

JavaScript is a C-style language
like C, C++, Java, and C#

Latin sentence


Puella est laeta.

The girl is happy.

Programming Sentence

var girl = new Girl();   // <-- noun
girl.Age = 15;           // <-- adjective
girl.HasShoes = true;    // <-- adjective
girl.Shirt.Color = "black";
girl.Study();            // <-- verb
if (girl.IsTired) {
  girl.Sleep();          // <-- sentence
}
//            ^ punctuation

Programming is speaking in computer languages
to give computers instructions

What do I do?

I write instructions for computers

I write programs that solve people's problems

I help people solve problems with my technical art

Solving People's Problems

Methodology for solving problems

  • Break problems down into small pieces
  • Solve the small pieces (build functions)
  • Combine pieces into solutions

Over time, patterns emerge.

Software Paterns

Software patterns describe common approaches:

  • Module
  • Factory Pattern
  • Builder Pattern
  • Lazy Initialization
  • Adapter Pattern
  • Inheritance
  • Repository
  • Unit of Work
  • Inversion of Control

Source: wikipedia.org/wiki/Software_design_pattern

Solving problems

Often times I use the Scientific Method to solve problems

Source: wikipedia.org/wiki/Scientific_method

Constantly learning

Software is changing really fast.

I'm constantly learning new technology.

Users generally have similar problems

so there are very stable things too.

I love that I get to keep learning.

Programming is a team sport

I work with:

  • Graphic Designer
  • Network Engineer
  • Project Manager

Graphic Designer

Network Engineer

Source: https://cdn.slidemodel.com/wp-content/uploads/6177-02-network-diagram-template-powerpoint-1.jpg

Project Manager

Source: https://cdn.vertex42.com/ExcelTemplates/Images/excel-gantt-chart-MF_large.gif

Why I love programming

  • I'm constantly learning
  • I'm creating and building
  • I'm helping people

How can you get started?