Skip to content
View SFM61319's full-sized avatar
🏠
Working from home
🏠
Working from home

Block or report SFM61319

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
SFM61319/README.md

Hi there 👋! I am Avinash, a curious programmer from India!

Like the h3 header above says, My name is Avinash, I am 18 years old. And I am one curious and interesting programmer. I have been programming (not [just] scripting) since I was around 10 years old (one can say I have over 8 years of experience, unofficially).

It all started when I was first taught HTML (officially), along with some CSS and JavaScript (unofficially taught by my teacher, yes she was a cool teacher 😎) from class 6 to 8 - I know, HTML and CSS aren't programming but markup and styling languages respectively, but JavaScript is (isn't it?) - which piqued my interest in programming. I learnt them as much as I could till class 8, after which in class 9 and 10, I started learning C and C++ on my own.

C++ was what I used to learn and understand Object-Oriented Programming too (and can easily and efficiently implement different Data Structures using classes (with generics too), and write efficient algorithms to process the data held in those structures, all using just the C++ STL). And thanks to C++, and how performant it can be and how much of an optimised code we can write in it, I dug deeper on system architecture and other hardware level stuff and learnt and understood a bit about hardware-level optimizations and how C++ achieves them --
For example, how a small std::vector is generally faster than a small std::list - even for mid-collection insertions and deletions - because of:

  • A vector being array-ish (contiguous blocks of memory, constant-time access of elements just by indices)
  • Indirections being slow (since pointers are used in linked lists)
  • Possible allocation of said vector in CPU data cache and local registers (remember, we are comparing small vectors with small lists, and smaller things may fit in the cache and registers depending on the CPU) for faster access - part of hardware optimization - by the CPU, which also makes shifting of elements for mid-collection insertions/deletions faster than de-referencing of pointers in memory
  • CPU Branch Prediction - again, part of hardware optimization, being ahead by predicting the next 15 to 20 actions based on the past action(s), hence knowing what to do and being faster - which works for contiguous blocks of memory of the same data type, but not for random pointers pointing to different memory locations - which have to be de-referenced first - causing CPU misprediction (pointer indirection being responsible again)

-- Apart from it already being faster than most languages because of it being compiled, statically typed, and it's ability to compile to native bytecode.

Then in class 11 and 12, I chose Computer Science (over Physical Education), in which I was taught about computers, operating systems, different types of languages (and their categories and sub-categories), and mainly, Python 3 and MySQL.
Python being so simple, readable, and hence easy (while less performant, quite the opposite of C++ in most aspects), quickly became one of my favorite languages (the other favorites being, C++ (my favorite-est language) and C# - I'll come to C# in a few seconds I mean words). I do everyday basic automation in Python whenever possible, and write (what I find to be) useful Python libraries (though I may never publish them to PyPI), and Machine Learning, Deep Learning and Artifical Intelligence projects. Apart from Python 3, I also learnt C# on my own in class 11 and 12. And C# is, in my humble opinion, Java, but good (I actually once wrote a thirty-pointer on why C# is much better than Java). It's just too good. And then, knowing JavaScript and C#, I learnt TypeScript. It's the perfect blend of JavaScript and C#.

And as of now, I can write vanilla HTML, CSS, and JS, or ReactJS/TS frontend websites, with Django (Python), Node.js (using the express.js library), or ASP.NET (Core) backend, with MySQL, SQL, MongoDB or PostgreSQL databases. I can also write modern Windows desktop apps (WPF or UWP) in C# (with XAML) and/or C++. And I can quickly write simple Tkinter apps in Python. I can write all these projects with proper version control using Git.

And finally coming to the favorites in the meta part, my favorite code editor is Visual Studio Code (although I use vim 8.2 - and I like vim too - on Arch Linux ARM on my Android phone, and compile and run code using compilers like GCC, G++, Mono C#, and interpreters like Node.js and Python 3 for Arch Linux ARM, due to "hardware insufficiencies"), and IDE is Visual Studio 2022 (it was Visual Studio 2019 until Visual Studio 2022 was released).

To sum it all up, I'm an enthusiastic and a curious learner and a programmer who absolutely loves programming. And a little known secret, I took up CSE not because of the pay or the job opportunities, but because I love programming. I want to work for Google and Microsoft one day, especially the Google search engine, Android OS, Material UI (now Material You), and the Google Assistant areas in Google, and Windows 11, WinUI, Fluent UI, and a few more areas in Microsoft.

Well, this (hopefully) explained about the programmer in me in less than 5 minutes.

Thanks for reading!

Pinned Loading

  1. ds ds Public

    A C library to safely yet efficiently work with UTF-8–encoded, growable dynamic strings.

    C 2 1

  2. aoc_2023 aoc_2023 Public

    My solutions for Advent of Code 2023, written in Rust

    Rust 1

  3. mtreits_favorite_interview_question mtreits_favorite_interview_question Public

    Rust 1

  4. UWPalette UWPalette Public

    The modern color palette generator for Windows.

    C# 1

  5. DyePy DyePy Public

    A Python module for all colors and related functions

    Python 3

  6. sfm61319.github.io sfm61319.github.io Public

    Avinash Maddikonda's (SFM61319) home page