#1 Carpe diem Learning
Tags: 100daysofcode, challenge, codenewbie, devjournal
Published: 2021-01-09 20:57:21

Hello Devs here,

I have started this series to jot down my ideas, thoughts, day to day activities that would lay down path to successful person.

Today's Learning on
-------------
      
- [Coding](#coding)
- [Tasks done](#task)
- [Tips](#tips)
- [Ideas](#ideas)
- [Take away motivation](#motivation) 

### Coding <a name="coding"></a>
 Learned about _competitive programming_ and it's best practices
  - Programmer's efficiency is calculated from their way of coding that includes the type of algorithm, logic, processing speed, memory allocation.
  - First need to understand why big FANG companies approach competitive programming to evaluate a candidate's efficiency
     - Main aim of the company is to deliver a product that satisfies customer experience that includes parameters like speed, etc. at a affordable cost
     - Expect every developer they hire must have this superpower capability and that can be exposed through their code.
 - To code in such a smarter way we need to know the in-depth working of computers when our code is executed.
   - Learning about Algorithms(algo), Data Structures(D.S), most importantly when to use which algo & D.S matters the performance of code.
    - _Time Complexity_ (time required to execute each piece of code) 
Following are some key examples to calculate the time complexity(T.C.)

     - Order of Precedence(low time consuming to high):
    **O(1)< O(log n)< O(n)< O(nlogn)< O(n^c)< O(n!)**

     - Cheatsheet:
     ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/s1guv4de21qwy32km855.jpeg)![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/g7avudkm135134rduxw1.jpeg)
      
   
  - _Space Complexity_ (memory): It is opposite to time complexity, more time-efficient programs consume more space. 

 - Also in what scenarios which programming language is preferred
     - C or CPP or JAVA > Python  is preferrable for competitive programming because of its fast execution
     - Java is preferred for its *Object-Oriented* nature, mainly for its abstraction and encapsulation.
     - Python for easy learning and mainly used in *ML, Data Science*.
     - C & CPP used for *Game, compiler developing, implementing Data Structures*.
     - Java Script can be used for both front end and backend
     - *ReasonML* newly emerging is used for web development with AI, ML because it leverages both JS & OCaml ecosystems


> Tip: Trending Languages many come and go but basic object-oriented programming doesn't change and it is more essential for a successful programmer.

### Tasks done <a name="task"></a>

Attended a meetup conducted by [Gitlab Meetup Coimbatore][1] on _BreakDown NodeJS_ and won goodies for active participation
  - Key takeaways from the meetup : 
    - V8 engine is used to execute js code
      - It is also used in chrome in which the js part only single-threaded.
      - Uses heap, stack from stack control is passed to _libuv_ (package written in C) it executes code blocks in the event loop
    - Good understanding of JS Prototype
      - function prototype -> carried out by constructor
      - Object prototype -> carried out by _proto_ property
    - Destructuring code
    - Babble (to convert ES6 to ES5 at run time for browser compatibility issues)
    - NodeJS is single-threaded as of now but nowadays JS, Python switching to multi-thread to support big data.
    - suggested to read _"You don't know JS"_ to understand JS more precisely

### Tips<a name="tips"></a>

- [Vscode Extensions that'll boost development productivity][2]
- Prepare short notes and do _revision_ consistently without this learning is simply a waste of time!
- Do follow _Atomic Habits_ 
  - (1) make it obvious 
  - (2) make it attractive
  - (3) make it easy, and 
  - (4) make it satisfying

  believe it has huge power!!!

### Ideas<a name="ideas"></a>

   As I'm a AI enthusiast, found some cool fun project ideas that we can make during learning stage itself.

- ML Model to clear the clutter from our phone's gallery (E.g. WhatsappImages)
  - Detect & Extract patterned pictures from that folder
  - Built a CNN
  - Run Py script in a laptop with connection to mobile containing that folder

- Using OpenCV Tensorflow for Face Detection
  - To understand Py in ML & Image Processing
- Build a website using Py, JS with chatbot implementing NLP
  - We can gain an in-depth idea in both Website Design, Development, Hosting, and AI

### Motivation<a name="motivation"></a>

- _Inspiration unused is merely entertainment so put into action._
- _Confidence isn't thinking u r better than everyone else, it's realizing that you have no reason to compare yourself to anyone else._
- _*F.A.I.L* - First Attempt In Learning (this made me start this series)_
[1]: https://dev.to/gitlabc
[2]: https://www.freecodecamp.org/news/vs-code-extensions-to-boost-your-development-productivity/