Showing the world your skills – Are you an aspiring Developer

Over the past 7 weeks we have been out on the road as part of the @gradsingames in the Game Tour. To date we visited over 70 UK universities and seen around 2500 students.

GradsinGames

In a follow up to my article https://blogs.msdn.com/b/uk_faculty_connection/archive/2015/11/09/stand-out-from-the-crowd-show-the-world-your-skills.aspx

I wanted to focus on some of the areas, that we are getting the most questions about.

So in no order here a run down of some of the most popular questions to date from the developer attendees.

No1. I don't have a portfolio how do I go about building

Well that's easy Microsoft DreamSpark now includes FREE web hosting for students so you can build a blog in about 10 mins see https://blogs.msdn.com/b/uk_faculty_connection/archive/2015/11/09/stand-out-from-the-crowd-show-the-world-your-skills.aspx

No.2 What sort of things should I put on my blog and include in my portfolio

Be reflective of your work, host content embedded within your blog, use tools which show your skills, so if your designer use 3d models hosted on https://www.Sketchfab.com and put playable games and content into iframe on your blog such as WebGL Unity3d games.

The key thing around your portfolio, is it needs to reflective and demonstrate your skills and competences.

The way try to explain this in the presentations is via the following model, you need to be able to demonstrate each of the following areas.

image

Motivations – Why/What do you want to do in the future? what drives you? What are your passion, enthusiasm? show your tenacity aspects demonstrate these.

Technical Skills – What skills do you have? How are you proving these?

My advice is simple talk/blog about your experiences, projects and be reflective, includes Games, Source Control. Share content of what you have created and with what technologies. Do you have profile on technical forums such as StackOverflow, MSDN what your ranking these? All this helps prove your technical competency.

Soft Skills – What is your experience of presentations, networking, community involvement? Do you go to any regular meet-ups, do you present on your project or work items?

Projects – Ok as a student you have loads of project work.. But are you being self critical of these. what went well? what didn't? what would you change? are you making these available for other via GitHub as base project or tutorial? So a simple rule always include a readme.md file into your git with some details of what the project is ideally include a link back to your blog for the above details.

Formal Education – You are all doing some form of course, but what makes you stand out? Are you expected a 2:1, 1st are you a member of skill set accredited or BCS course what in your portfolio?

Self Driven Education – Ok so your doing a course and expect good grades. But what else are you learning? How do this feeds back into motivation? soft skills? technical skills and projects? Do you do Hacks or Jams? Do you do additional learning online via resources like www.microsoftvirtualacademy.com or other MOOC resources? As a simply rule, you need to keep a breast of the latest news, technologies and industry trends.

Opportunities – Take everything that passes you which may land you that dream job. If you dont ask you don't get so never be afraid of asking or introducing yourself. Attend events and be seen by the industry, be prepared to show people what your working on, have business cards with your portfolio site, Share content on twitter and other social networks.

No3. For Dev students you need to prove your skills 

So as dev you should have built stuff. Demonstrate/Prove this by having a public GitHub repo where you can share your code and projects. Coming back to motivations actually get involved in a project..

MSFT Imagine has its own GitHub repo https://www.github.com/msftimagine so I am always happy for people to get involved and contribute samples, tutorials.

No4. I am new to source control how do I use it?

Yes its amazes me, but during the tour I  have been shocked how many time I have asked. Do you use source control? The answer is generally yes but when you dig a bit further and ask what application service are you using? I get the answer dropbox, onedrive, google drive!

NO……… 

So why use something like Git or Visual Studio Online or BitBucket?

Simply it has version control  You and your team/project members can each upload your revisions to the same page, and Git will save two copies. Later, you can merge your changes together without losing any work along the way. You can even revert to an earlier version at any time, because Git keeps a “snapshot” of every change ever made.

No5. which version control do you recommend

My preference would be GitHub 

First, if you download the GitHub software from Microsoft DreamSpark, it provides a visual interface to help you manage your version-controlled projects locally. Second, creating an account on GitHub.com brings your version-controlled projects to the Web, and ties in social network features for good measure.

You can browse other GitHub users’ projects, and even download copies for yourself to alter and learn from. Other users can do the same with your public projects, and even spot errors and suggest fixes. Either way, no data is lost because Git saves a “snapshot” of every change.

No6. Do you have any tips on using GitHub or Source control

So what are the key concepts and terms

Command Line: The computer program we use to input Git commands. On a Mac, it’s called Terminal. On a PC, it’s a non-native program that you download when you download Git for the first time

Repository: A directory or storage space where your projects can live. Sometimes GitHub users shorten this to “repo.” It can be local to a folder on your computer, or it can be a storage space on GitHub or another online host. You can keep code files, text files, image files, you name it, inside a repository.

Version Control: Basically, the purpose Git was designed to serve. When you have a Microsoft Word file, you either overwrite every saved file with a new save, or you save multiple versions. With Git, you don’t have to. It keeps “snapshots” of every point in time in the project’s history, so you can never lose or overwrite it.

Commit: This is the command that gives Git its power. When you commit, you are taking a “snapshot” of your repository at that point in time, giving you a checkpoint to which you can reevaluate or restore your project to any previous state.

Branch: How do multiple people work on a project at the same time without Git getting them confused? Usually, they “branch off” of the main project with their own versions full of changes they themselves have made. After they’re done, it’s time to “merge” that branch back with the “master,” the main directory of the project.

Git-Specific Commands

Since Git was designed with a big project like Linux in mind, there are a lot of Git commands. However, to use the basics of Git, you’ll only need to know a few terms. They all begin the same way, with the word “git.”

git init: Initializes a new Git repository. Until you run this command inside a repository or directory, it’s just a regular folder. Only after you input this does it accept further Git commands.

git config: Short for “configure,” this is most useful when you’re setting up Git for the first time.

git help: Forgot a command? Type this into the command line to bring up the 21 most common git commands. You can also be more specific and type “git help init” or another term to figure out how to use and configure a specific git command.

git status: Check the status of your repository. See which files are inside it, which changes still need to be committed, and which branch of the repository you’re currently working on.

git add: This does not add new files to your repository. Instead, it brings new files to Git’s attention. After you add files, they’re included in Git’s “snapshots” of the repository.

git commit: Git’s most important command. After you make any sort of change, you input this in order to take a “snapshot” of the repository. Usually it goes git commit -m “Message here.” The -m indicates that the following section of the command should be read as a message.

git branch: Working with multiple collaborators and want to make changes on your own? This command will let you build a new branch, or timeline of commits, of changes and file additions that are completely your own. Your title goes after the command. If you wanted a new branch called “cats,” you’d type git branch cats.

git checkout: Literally allows you to “check out” a repository that you are not currently inside. This is a navigational command that lets you move to the repository you want to check. You can use this command as git checkout master to look at the master branch, or git checkout cats to look at another branch.

git merge: When you’re done working on a branch, you can merge your changes back to the master branch, which is visible to all collaborators. git merge cats would take all the changes you made to the “cats” branch and add them to the master.

git push: If you’re working on your local computer, and want your commits to be visible online on GitHub as well, you “push” the changes up to GitHub with this command.

git pull: If you’re working on your local computer and want the most up-to-date version of your repository to work with, you “pull” the changes down from GitHub with this command.

Setting Up GitHub And Git For The First Time

GitHub's signup page.

First, you’ll need to sign up for an account on GitHub.com. It’s as simple as signing up for any other social network. Keep the email you picked handy; we’ll be referencing it again soon.You could stop there and GitHub would work fine. But if you want to work on your project on your local computer, you need to have Git installed. In fact, GitHub won’t work on your local computer if you don’t install Git. Install Git for Windows, Mac or Linux as needed.

https://git-scm.com/, where you download Git.

https://git-scm.com/  where you download Git or if your a GUI person you can download https://desktop.github.com/

Now it’s time to go over to the command line.

On Windows, that means starting the Git Bash app you just installed, and on OS X, it’s regular old Terminal. It’s time to introduce yourself to Git. Type in the following code:

 git config --global user.name "Your Name Here"

Of course, you’ll need to replace “Your Name Here” with your own name in quotations. It can be your legal name, your online handle, anything. Git doesn’t care, it just needs to know to whom to credit commits and future projects.

Next, tell it your email and make sure it’s the same email you used when you signed up for a GitHub.com account just a moment ago. Do it like this:

 git config --global user.email "your_email@youremail.com"

That’s all you need to do to get started using Git on your computer. However, since you did set up a GitHub.com account, it’s likely you don’t just want to manage your project locally, but also online. If you want you can also set up Git so it doesn’t ask you to log in to your GitHub.com account every time you want to talk to it. For the purposes of this tutorial, it isn’t a big deal since we’ll only be talking to it once.

The full tutorial to do this, however, is located on GitHub and GitHub Desktop site https://help.github.com/desktop/

No7.I want to create my own startup

see www.BizSpark.com

BizSpark gives startups 3 years of free stuff – software, services, tech support, and Azure cloud.

Your startup qualifies if it is less than 5 years old, is privately held, and earns less than $1M annually. And at the end of your 3 years, you keep all the software you've downloaded – at no cost.

simply apply online at www.BizSpark.com

So hopefully this has given you some insight into the key areas of questions and some tips on how to get the your dream job I also have the following blog on some top tips on the do’s and Don'ts at https://blogs.msdn.com/b/uk_faculty_connection/archive/2015/11/12/how-to-land-your-dream-job.aspx