8 Things every new programmer needs to learn

1. Programming language. Well, this is kind of obvious but you have to learn a programming language to be a programmer. This chapter will discuss the different languages and their pros and cons. Should you learn an object oriented based language, procedural language, or a scripting language? Should you learn a compiled or interpretive language? Should it be strongly typed or loosely typed? These all depend on the types of development and applications that you will be building. Are you going to be a game developer, enterprise application developer, or mobile app creator?

2. Language basics. Every language has the same basics. It has data types(a type system), branching, looping, boolean expressions, arithmatic expressions, and reusable blocks of code you build(methods, functions, classes, etc).

3. IDE. Integrated Development Environment. This is the tool that you will program with. Do you need a full IDE with debugger and other tools, or will a text editor suffice. But either way you have to become a comfortable and proficient with an IDE to be a real programmer. The IDE is your best friend. This is what makes or breaks your productivity and frustration level.

4. Database. It is very hard these days to be a developer and not store or retrieve data. To be a real developer you will need to learn database basics. You don’t have to be a dba but you will need to know how to build a simple database and get and put data into it. The big question here is to learn a SQL or no SQL database. There are many good options of each. SQL database like SQL Server, Oracle, and MySQL are structured with tables, rows, and columns. No SQL databases like MongoDB and DocumentDb typically store data items as documents in JSON format. SQL has historically been the most used but No SQL databases are becoming very popular.

5. Framework. A framework is typically made up of 2 things. Reusable code(objects, libraries, packages, etc.) so you don’t have to build everything from scratch. And an environment that you code will run in. If you are a C# programmer, for instance, the .NET framework is what you will use. If you are a Java programmer you will use frameworks like Swing and the JVM(java virtual machine) to run your code. If you are a web developer you might use the Angular framework on the client and Node and NPM(Node package manager) on the server side.

6. Software design techniques. You will need to learn things like object oriented design, wireframing, use cases, flowcharting, and test driven design. These are all the techniques that you will have in your toolbox to allow you to take a set of requirements and turn them into a working application that solves a problem. This is how you take a concept and break it down into pieces of code that you can actually write.

7. Design patterns. These are common ways to solve problems with software. A common way to tackle a problem. For instances, many graphical user interface applications use the MVC(model-view-controller) design pattern. Others use the MVVM(model-view-viewmodel) design pattern. Another common design pattern is object oriented. You build a set of software objects that model real world objects. OO can also be described as a software design. Pipelining is a common design pattern for developing multithreaded and parallel applications. Design patterns will be you go to way of solving certain types of problems or building certain kinds of applications.

8. Software Development Lifecycles. SDLC’s are ways you manage the the life of a software project. This typically includes the following steps – gathering requirements, software design, coding, testing, deploying, and maintaining. Here will learn the classic waterfall method and newer methods like Agile and Scrum. But the SDLC is how you manage the whole project and life of a software system that you are building.

Check out the UWP Community Toolkit

Check out the UWP Community toolkit on github. This toolkit will increase the productivity of all UWP developers.

It has tools divied up into 5 different categories(Controls, Notifications, Animations, Services, and Helpers), This toolkit has all sorts of goodies to help speed up your UWP project.

As .NET developers transition their skills to UWP this toolkit will jump start your projects with eliminate a lot of your initial programming.


Clemson wins! Clemson wins!

I have to give a BIG shout out to my Clemson Tigers and their National Championship victory last night. Go Tigers. It is a good day to be a tiger AND a software developer 🙂 .

I’d also like to promote our C#/.NET programming track at CPCC as an alternative to some of the popular code camps. We offer a 3 class track(Software Development Fundamentals, Beginning OO programming with C#, and .NET framework). These 3 classes are a great(and a lot more inexpensive choice) versus a standard coding boot camp. Check from out here C#/.NET programming track.

Also, you can signup for our newsletter to receive the latest tips for beginner programmers.