DEV Community

Rajalakshmi
Rajalakshmi

Posted on • Updated on

#1 Carpe diem Learning

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

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 TextAlt Text
  • 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

Attended a meetup conducted by Gitlab Meetup Coimbatore 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

believe it has huge power!!!

Ideas

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

  • 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)

Top comments (0)