Developer to Data Scientist

 Where to start:

As a developer you would be keenly looking to re-use your development skills into data science and that’s a good thing as development skills are important part of the Data Scientist’s toolbox.

  • Up-skill on Python/R : If you are already comfortable with Python/ R you saved yourself a lot of time and you should be ready to move to the next step. If you are new to Python / R you would need to get yourself comfortable with anyone of them to begin with. Python is great for beginners who especially those who are new to programming.  As a C# developer I was immediately drawn to python and was amazed how easy it is to get things done in python. A great way to learn python is to start doing it, I would recommend HackerRank . Start doing the easy ones get comfortable with the syntax and then move onto medium and hard ones. It is completely fine if you are not able to solve all the problems, the idea here is get comfortable with the language and not to master it, our real goal is master machine learning.
  • Up-skilling SQL: If are new to SQL then you should spend time learning SQL as most of the data especially the enterprise data resides in relational databases, so it’s very important to understand how to query them and the best resource out there to practice SQL is .
  • Apply machine learning: This is the most interesting part of the journey as you acquire some new skills and concepts here. Make sure to select one online course from the plethora of the courses available out there and make sure to complete that. Luckily for us, the courses have been curated and listed here based on their popularity.

Gamify the learning process:

  • Kaggle : The most fun way to make progress is to gamify the whole experience. Kaggle does that to some extent. Leader boards, points, progressing from novice to master, forums help you stay motivated and keep trying again and again.

Staying Connected(Community):

Pet Projects:

Start doing some pet projects that you feel passionate about. Try to find the right datasets, perform the pre-processing and then start applying the machine learning models to uncover insights. I like sports and hence any dataset that is about sports gets me interested. You can find interesting datasets in the links below. just search for them and start exploring.


Create a online presence:

  • Blogging/Teach/Share your journey : Make sure you share your journey and your learnings with the data science community as it will help you keep motivated. Teaching is the best way to learn something so make sure you create content which helps the community. Start a blog and try to add value to the community.

Don’t forget the soft skills:

Uncovering insights from data using a fancy algorithm is an awesone skill to have but it’s of no use if those insights are not shared and presented well. Meetups and events like Toastmasters can be a great place to start and improve your presentation skills. Always start small with a presentation to a small group of people and get their feedback and then slowly progress towards a larger group.

Staying motivated:

It’s very to stay consistent with your goals. It’s very easy to over do it and then burn out , pace yourself so that you can sustain yourself in this journey. Optimize your life to help you reach your goals.

Iterate the above steps:

Data Science is ever evolving field so it’s always important to iterate , track your porgress, learn and unlearn concepts. The important bit is staying motivated and enjoying the journey.


This blog post is a work in progress as i am myself taking this journey and these have been my findings. I will keep updating this post as and when i uncover great resources.

Master Page issue : The base type is not allowed for this page. The type is not registered as safe


Ever faced a scenario where you edited a SharePoint master page with SharePoint designer and suddenly the whole site is down with an error message

The base type is not allowed for this page. The type is not registered as safe

Well, recently i faced the same issue and fortunately there is help out there to fix and bring everything to normal. Solution is to re ghost the master page or in other words reset to site definition.

  1. Navigate to Site Settings.
  2. Under Look and feel find and navigate to Reset to site definition, and as the url suggests(_layouts/15/reghost.aspx).
  3. Paste the URL of the master page, from the master page gallery.
  4. Click reset to confirm.

Once done, the error should be gone and you site should be back up.

The email message cannot be sent .make sure the email has a valid recipient

Ever tried to send emails using CSOM using

and got an exception “The email message cannot be sent .make sure the email has a valid recipient“.

The reason is the ClientContext, you are passing to the function. Make sure the sharepoint site with which you created the Client Context has the Mail Recipient listed in the All People Group. To check that,

Navigate to [Site_Url]/_layouts/15/people.aspx?MembershipGroupId=0

and make sure the Email To user is listed in the group.

For more info Refer this .

Activate Publishing features using CSOM

After scouring through the internet and some trial and error, here it is.

You can find the GUID for the feature here .


Private/Incognito browser window from visual studio

During the course of your development, we often clear cookies , cached data from our browsers to test our application. Such a waste of productive time.

What if Visual Studio always opened the browser window in private/incognito mode. To enable that follow the below steps.

VS detects the browsers installed and shows them to you for to browse with.




To Add Firefox(private) into this list.

  • Click Add
  • Fill up the details as shown below.
  • Set as Default if required.


  • For chrome to open up in incognito mode.
Internet Explorer


NavigationTerm – Set Custom Properties NavigationTerm – Managed Metadata


Ever tried to set custom properties for the terms in your site navigation. Recently i tried the same but ended up searching for a while, after a lot of playing around , found a way to set custom properties. Following snippet will create a new term, set the target url , catalog target url and also set a custom shared property.

As you can see NavigationTerm has a method to get the underlying term and then from there it’s straight forward.

Hope this helps.

ews-Id is malformed

Ever tried to get tasks or emails from exchange using ews and faced this weird exception id is malformed. In my case, i had a http get to my ews method which accepted the id as a query string and id contains some special characters like +, / , = .  and all the + characters were replaced by spaces during the http get call. a example id will look like this.

So, it’s very important that you replace the + with %2B while making the get call.

so , whenever you get this error chances are some of the special characters in the id are missing. Taking care of that should solve this exception.

Happy coding…

Sharepoint fields in page layout

Following snippets will help you add different types of sharepoint fields into your page layout.

  • Text Field

  • Note Field

  • Taxonomy field

  • DateTime field

  • RichHtml Field

  • Image Field


Typescript – Interfaces

In simple terms, Interfaces provide code contracts which all classes that implement the interface have to follow.

Following is a simple example for a typescript interface and a class implementing the interface.

The above code sample creates an interface named IAnimal which has a property and a function which all animals have. The class Dog implements from this Interface and has to provide definition for the property and the function.

feel free to play withe the code sample here .