Data Science - My 30 day Challenge starting on 19th Oct 23

I am learning Data Science starting with Analyst specialist path because I have background in accounting so there is a bit of transferable skills that I can utilize in this path.

I am changing my career into data science so I need to learn SQL, Python and BI visualization tools. I do have some experience and knowledge about Power BI and Tableau but programming is a new skill that I will be focusing on acquiring as part of this course.

I am dedicating considerable amount of time (6 to 8 hours per day) to learn, train and practice data science. And hoping this 30 day challenge may keep my accountability in check by exercising my discipline and showing progress every day.

2 Likes

Day 1 was pretty good.

I could cover 3% of the course. More importantly I am enjoying learning the basics.

Missing data - (understanding different kinds of missing data is phenomenal :joy: :joy: :joy:)

  • Missing at random (MAR)
  • Missing Completely at Random (MCAR) and
  • Missing Not at Random (MNAR)
2 Likes

Day 2 was as good…

I covered another 2% of the course… There are a lot of new concepts introduced…

The focus was mainly on viz…

1 Like

Day 3 was a slow day, although I completed a chapter

Todays chapter on types of data analysis using statistics and Bias in Data Analysis

Descriptive Data Analysis

Exploratory Data Analysis

Inferential Data Analysis

Causal Data Analysis

Predictive Data Analysis

1 Like

Day 4 was learning about SQLite - SQLite is light SQL version that Codecademy uses for training for its simplicity.

Learnt to install GIT Bash and install SQLlite… as well as to make it work… not a difficult task… :slight_smile:

Also learnt 6 commands in SQLite…

CREATE TABLE table_name (
column_1 data-type,
column_2 data-type,
column_3 data-type
);

Insert into values in order -
INSERT INTO table_name
VALUES (value1, value2);

Insert into values by name -
INSERT INTO table_name (column_1, column_2, column_3)
VALUES
(column_1_value1, column_2_value1, column_3_value1)
(column_1_value2, column_2_value2, column_3_value2);

DELETE FROM table_name
WHERE column_1 = value1

ALTER TABLE table_name
ADD column_1 data-type;

UPDATE table_name
SET column_1 = value1
WHERE column_any = some-value

Also, learnt about column constraints

PRIMARY KEY (there will be only one PRIMARY KEY column per table allowed)
UNIQUE (multiple UNIQUE columns per table allowed)
DEFAULT
NOT NULL

1 Like

Day 5 - 12%

Although the coverage was not as much compared to yesterday, there were quite a lot of commands…

I have looked at queries - it included logical operators, comparison operators, wildcard etc.

AND, OR, BETWEEN, LIKE, AS, % and _ wildcards, DISTINCT, LIMIT, NULL clauses…

It also included aggregators such as SUM(), COUNT(), AVG(), MAX(), MIN(), ROUND() and usage of clauses such as WHERE BY, ORDER BY, GROUP BY and HAVING… column references such as using column numbers instead of column names in Group by or order by clauses…

Day 6 - 16%

Done with SQL foundations and started with Python fundamentals

introduction was fun and simple… easy to follow… it was nice to work on the little projects… where you start with basic program writing then adding functions etc…

Day 7 - 18%

Introduced to Python functions… data types, lists, variables, conditional statements…

Day 8 - 21%

Python Control Flow

Python Lists and List Comprehensions

Python Loops

Projects

Day 9 - 24%

Python fundamentals for Data Science Part I covered.

It is cool that I could remember most of the commands to practice and work out the project.

It is slower but developing stronger skill set…

Day 10 - 25%

It was way small learning for my liking… Will get back on…

Day 11 - 25%

Still at 25%… got caught up with weekend chores and although did some studying… it wasn’t progressing as much… APIs are dry subject…

Day 12 - 26%

As promised to myself, I did work on this learning although I had another pressing issue to attend to… Now that has been sorted out, I can start to dedicate my full attention again on this course…

1 Like

Day 13 - 27%

Concepts are a bit more time consuming but I am still going at them… at a slow pace than I would wanted…

Day 14 - didn’t check the %… most probably it didn’t move much… because…

all of the sudden codecademy got me to solve Caesar Cipher and Vigenere Vipher encrypted and decrypted messages…

I feel these are much deeper concepts than what it has been educated so far… It is not a complaint but I wasn’t expecting this as soon as now… but it is allowing me to dig deeper to understand the concepts and search web to find out different ways others have approached these problems…

It is important to accept that most of this is part of learning process… yes, it makes me feel I have so much to learn… but, yes I have to learn bit by bit…

I found the below page helpful in understanding the problem logic and coding logic…

Day 15 - Still at 27% - however I am practicing using cipher projects…

It is a bit overwhelming knowing that there is a lot that I don’t know… but I am willing to learn…

I am also learning to problem solve… in order to do that we need to understand the problem first in a conceptual way…

Once we know the problem conceptually then we can solve it step by step… that is where programming comes along…

1 Like

Day 16 - No progress on Codecademy material as I am practicing the coding…

I know I need to move on as there is lot more to learn and things will start to make sense as I progress…

1 Like

Day 17 - Looking at some video lectures to understand the concepts more clearly…

I found this wonderful video lectures… the teacher is great and delivery is awesome… So, I have decided to complete this video lectures…

1 Like

Day 18 - 28%

Still trying to work out the code logic for barry is the spy - how to code for the space in between the words… it is a logical nightmare for me so far…

anyway… I googled around and finally understood a way to deal with this…

def encryptor(message, keyword):
letters = ā€˜abcdefghijklmnopqrstuvwxyz’
keyword_message = ā€œā€
cipher_message = ā€œā€
j = 0
for i in range(len(message)):
if message[i] in letters:
keyword_message += keyword[j % len(keyword)]
j += 1
elif message[i] not in letters:
keyword_message += message[i]
print("The transformed keyword is: "+keyword_message)
for i in range(len(message)):
if message[i] in letters:
cipher_index = (letters.index(message[i])-letters.index(keyword_message[i])) % 26
cipher_message += letters[cipher_index]
elif message[i] not in letters:
cipher_message += message[i]
return cipher_message

message = ā€œbarry is the spyā€
keyword = ā€œdogā€
print("The cipher message is: "+encryptor(message, keyword))

ā€œFriendsā€ Keyword decryptor message code

def decryptor(message, keyword):
letters = ā€˜abcdefghijklmnopqrstuvwxyz’
keyword_message = ā€œā€
cipher_message = ā€œā€
j = 0
for i in range(len(message)):
if message[i] in letters:
keyword_message += keyword[j % len(keyword)]
j += 1
elif message[i] not in letters:
keyword_message += message[i]
print("The transformed keyword is: "+keyword_message)
for i in range(len(message)):
if message[i] in letters:
cipher_index = (letters.index(keyword_message[i])+letters.index(message[i])) % 26
cipher_message += letters[cipher_index]
elif message[i] not in letters:
cipher_message += message[i]
return cipher_message

message = ā€œtxm srom vkda gl lzlgzr qpdb? fepb ejac! ubr imn tapludwy mhfbz cza ruxzal wg zztylktoikqql!ā€
keyword = ā€œfriendsā€
print("The cipher message is: "+decryptor(message, keyword))

Day 19 - finally moved past the exercises - I am still not confident about writing loops and iterating values through loops… I am hoping this will come with practice…

1 Like