Skip to content

Latest commit

 

History

History
507 lines (316 loc) · 34 KB

2021-03-01.md

File metadata and controls

507 lines (316 loc) · 34 KB

< 2021-03-01 >

3,414,954 events, 1,511,295 push events, 2,419,645 commit messages, 193,353,887 characters

Monday 2021-03-01 01:43:39 by Victor van der Put

Removed Prettier from Recommendations. Please do NOT use the formatter, because it fucks up your code too much. Better learn to write good code yourself. Their HTML and CSS formatter sucks major ass. Too much changes. Don't bother.


Monday 2021-03-01 02:21:30 by Jean-Paul R. Soucy

New data: 2021-02-28: See data notes.

Revise historical data: cases (MB, ON, SK).

Note regarding deaths added in QC today: “9 new deaths, but the total of deaths amounts to 10,393, due to the withdrawal of 1 death not attributable to COVID-19: 4 deaths in the last 24 hours, 2 deaths between February 21 and February 26, 3 deaths before February 21.” We report deaths such that our cumulative regional totals match today’s values. This sometimes results in extra deaths with today’s date when older deaths are removed.

Recent changes:

2021-01-27: Due to the limit on file sizes in GitHub, we implemented some changes to the datasets today, mostly impacting individual-level data (cases and mortality). Changes below:

  1. Individual-level data (cases.csv and mortality.csv) have been moved to a new directory in the root directory entitled “individual_level”. These files have been split by calendar year and named as follows: cases_2020.csv, cases_2021.csv, mortality_2020.csv, mortality_2021.csv. The directories “other/cases_extra” and “other/mortality_extra” have been moved into the “individual_level” directory.
  2. Redundant datasets have been removed from the root directory. These files include: recovered_cumulative.csv, testing_cumulative.csv, vaccine_administration_cumulative.csv, vaccine_distribution_cumulative.csv, vaccine_completion_cumulative.csv. All of these datasets are currently available as time series in the directory “timeseries_prov”.
  3. The file codebook.csv has been moved to the directory “other”.

We appreciate your patience and hope these changes cause minimal disruption. We do not anticipate making any other breaking changes to the datasets in the near future. If you have any further questions, please open an issue on GitHub or reach out to us by email at ccodwg [at] gmail [dot] com. Thank you for using the COVID-19 Canada Open Data Working Group datasets.

  • 2021-01-24: The columns "additional_info" and "additional_source" in cases.csv and mortality.csv have been abbreviated similar to "case_source" and "death_source". See note in README.md from 2021-11-27 and 2021-01-08.

Vaccine datasets:

  • 2021-01-19: Fully vaccinated data have been added (vaccine_completion_cumulative.csv, timeseries_prov/vaccine_completion_timeseries_prov.csv, timeseries_canada/vaccine_completion_timeseries_canada.csv). Note that this value is not currently reported by all provinces (some provinces have all 0s).
  • 2021-01-11: Our Ontario vaccine dataset has changed. Previously, we used two datasets: the MoH Daily Situation Report (https://www.oha.com/news/updates-on-the-novel-coronavirus), which is released weekdays in the evenings, and the “COVID-19 Vaccine Data in Ontario” dataset (https://data.ontario.ca/dataset/covid-19-vaccine-data-in-ontario), which is released every day in the mornings. Because the Daily Situation Report is released later in the day, it has more up-to-date numbers. However, since it is not available on weekends, this leads to an artificial “dip” in numbers on Saturday and “jump” on Monday due to the transition between data sources. We will now exclusively use the daily “COVID-19 Vaccine Data in Ontario” dataset. Although our numbers will be slightly less timely, the daily values will be consistent. We have replaced our historical dataset with “COVID-19 Vaccine Data in Ontario” as far back as they are available.
  • 2020-12-17: Vaccination data have been added as time series in timeseries_prov and timeseries_hr.
  • 2020-12-15: We have added two vaccine datasets to the repository, vaccine_administration_cumulative.csv and vaccine_distribution_cumulative.csv. These data should be considered preliminary and are subject to change and revision. The format of these new datasets may also change at any time as the data situation evolves.

https://www.quebec.ca/en/health/health-issues/a-z/2019-coronavirus/situation-coronavirus-in-quebec/#c47900

Note about SK data: As of 2020-12-14, we are providing a daily version of the official SK dataset that is compatible with the rest of our dataset in the folder official_datasets/sk. See below for information about our regular updates.

SK transitioned to reporting according to a new, expanded set of health regions on 2020-09-14. Unfortunately, the new health regions do not correspond exactly to the old health regions. Additionally, the provided case time series using the new boundaries do not exist for dates earlier than August 4, making providing a time series using the new boundaries impossible.

For now, we are adding new cases according to the list of new cases given in the “highlights” section of the SK government website (https://dashboard.saskatchewan.ca/health-wellness/covid-19/cases). These new cases are roughly grouped according to the old boundaries. However, health region totals were redistributed when the new boundaries were instituted on 2020-09-14, so while our daily case numbers match the numbers given in this section, our cumulative totals do not. We have reached out to the SK government to determine how this issue can be resolved. We will rectify our SK health region time series as soon it becomes possible to do so.


Monday 2021-03-01 06:33:59 by Kevin Chavez

Add helper superclass type to ContentState

Summary: Here's a fun one: ContentStateRecord is of type any, so subclassing ContentState from it means our new class can have essentially any method.

If its a method defined in the ContentState, its type will respected. If it's not, we'll just assume its there with in/out any. I'm assuming this applies to fields too.

I noticed this because I want to remove a method, but alas, I did and instead of pointing out where the uses are, flow returned the usually-great-but-today-stressful "No Errors!" message. Lovely.

In this diff I'm manually declaring a type for the superclass, so when I remove the method its pointed out by flow. It's full of anys, but it's still better than what we had before.

How do I know this? Because it outright already found bugs. There's callsites with the wrong number of argumetns, there's people calling this methods that don't exist, sigh. These are instant exceptions at best, deeply nested, obscure bugs otherwise.

Reviewed By: AjkP

Differential Revision: D24068574

fbshipit-source-id: 32b870e360fed003fef1d0b9800cdf15e5d90dd0


Monday 2021-03-01 07:38:41 by Yinghan Tan

feat: Added more snippets

Switched from coc-snippets back to ultisnips for the vastly superior features

Ex: Resolves Issue #207, see PR #15, etc.

Home Listings Podcasts Videos Tags Code of Conduct FAQ DEV Shop Sponsors About Privacy Policy Terms of use Contact Sign In/Up

DEV Community – A constructive and inclusive social network for software developers. With you every step of your journey.

Built on Forem — the open source software that powers DEV and other inclusive communities.

Made with love and Ruby on Rails. DEV Community © 2016 - 2021.


Monday 2021-03-01 09:21:26 by discord106dollar

Update ko.json

Hello, I am a tabletop player from Korea (South, if you are curious) and I am extremely interested in playing FTD in Korean. I have gone through the rulebook and tried my best to translate the terms. Thanks again for this wonderful character sheet and I will be looking forward to playing FTD with my best non-English speaking friends around here! I wish my very best to you and your family! (Sorry first to Github, ignore this if you have seen the proposal before)


Monday 2021-03-01 09:21:30 by Toon Werawat

OMFG IT'S ALL FUCKING FINALLY HASHED, I FUCKING HATE THREADING. FUCK YOU THREADING


Monday 2021-03-01 09:24:17 by Klecko

More operators, fix bugs

The bug was that some capacity checks wrapped around at the end of the address space, so it didn't allocate more memory and a buffer overflow occurred. This ended up as a NULL ptr dereference :)) I hate my life


Monday 2021-03-01 10:52:11 by cbhandal

RIP Mikhail

I met Mikhail Volkov around 2008 He was a brilliant engineer with a bright future ahead of him He was wickedly intelligent, funny and good natured Long before I ever coded in C#, I remember Mikhail excitedly talking about it one day It was this cool new language he had discovered I remember he was particularly fond of "delegates" I had no clue what they were at the time So in a small gesture, I've named this delegate in his memory RIP old friend


Monday 2021-03-01 10:53:29 by Jennifer Meade

Bug Fix Hints

I added some comments inline beginning on line 81 where your bug issue begins. Overall, this is an amazing project 1. I'd love to see you continue to improve it over time by refactoring it so it's DRYer. An excellent way to do that will be by using OOP. Creating some classes to help better organize your code will make it so there are fewer side effects and will help in preventing bugs like the one you experienced. Using React, which we're learning now, is another option to help put more structure behind your code. Congratulations on a great project submission!


Monday 2021-03-01 11:33:18 by Shanmuga Ganesh T

Distribute Candies

Alice has n candies, where the ith candy is of type candyType[i]. Alice noticed that she started to gain weight, so she visited a doctor.

The doctor advised Alice to only eat n / 2 of the candies she has (n is always even). Alice likes her candies very much, and she wants to eat the maximum number of different types of candies while still following the doctor's advice.

Given the integer array candyType of length n, return the maximum number of different types of candies she can eat if she only eats n / 2 of them.

Example 1:

Input: candyType = [1,1,2,2,3,3] Output: 3 Explanation: Alice can only eat 6 / 2 = 3 candies. Since there are only 3 types, she can eat one of each type.

Example 2:

Input: candyType = [1,1,2,3] Output: 2 Explanation: Alice can only eat 4 / 2 = 2 candies. Whether she eats types [1,2], [1,3], or [2,3], she still can only eat 2 different types.

Example 3:

Input: candyType = [6,6,6,6] Output: 1 Explanation: Alice can only eat 4 / 2 = 2 candies. Even though she can eat 2 candies, she only has 1 type.

Constraints:

n == candyType.length
2 <= n <= 104
n is even.
-105 <= candyType[i] <= 105

Hide Hint #1
To maximize the number of kinds of candies, we should try to distribute candies such that sister will gain all kinds. Hide Hint #2
What is the upper limit of the number of kinds of candies sister will gain? Remember candies are to distributed equally. Hide Hint #3
Which data structure is the most suitable for finding the number of kinds of candies? Hide Hint #4
Will hashset solves the problem? Inserting all candies kind in the hashset and then checking its size with upper limit


Monday 2021-03-01 11:36:56 by Marko Grdinić

"10:10am. I am up. Let me read Ayakashi and AssPride and then I will start.

I keep plotting how to get that point of contact and the only thing my mind is producing are bigger and bigger lies. The right approach for this is to fake identity and gather a lot of negotiation experience that way. I mean, imagine you are an AI. You could just make up fake resumes and apply through them.

The fact that I am not looking for a job, but a sponsor for Spiral actually makes things a lot harder for me. Spiral is tied to my identity and I can't really use the full breadth of negotiation strategies. Plus this is wasting a lot of my time and mental energy.

I actually resent a company like Groq a little. In the job posting there was a lot of what the company itself wants, but not what they would provide to the candidate. This goes even for senior posts.

Do I really have to approach this as a conman? If I get ghosted by the end of the week, I'll burn my morals and approach this solely from the perspective of maximizing my odds. I'll apply to senior positions from here on out with a bunch of made up experience.

10:15am. But I am really tempted to just wash my hands of this.

Forget the outside world and change my goals.

Yesterday I said that making a ML library was a mistake. That might have been the truth.

I am going to change my desired specialty towards where I am going. In 2020 I've started changing my approach from ML to concurrency. It should have been my main path from the start.

10:25am. Yes, making a ML library was a mistake. But I don't think that creating Spiral was. It gave me unparalleled freedom.

Like, once I had v2 it allowed me to simply make a Cython backend. That shows just how strong Spiral's capabilities are. Now I can program Python in the true functional style.

10:30am. I should be getting better at concurrency. More and more. Everything else is trivial. Even ML itself is trivial. It is a bunch of compiler engineering problems surrounded by NP Hard, impossible tier problems.

How difficult it is entirely depends on my approach.

...

I can get better endlessly if I cultivate my concurrency skills. It is really the natural outgrowth of functional programming. The fact that I thought that ML skills were the most central in the path of transcendence was merely just my misconception.

I might have made a tactical error, but the strategic choice of striving to overcome my limitations through making a language was the right one.

Let me chill.

10:55am. Let me finally start.

I am not really a rank 5. The pinnacle of programming skill would not possess such shallow accumulation. The pinnacle of skill even for just humans would have significant effect upon the world. I need to chase after it.

11am. Programming is not about conning my way into some company or the other. It is not about recognition or sponsors. It is about my own personal power.

The ML library was a mistake, but was I wrong to push forth with my own style? Never!

11:05am. Now I need to focus. I need to make the UI for the Leduc game.

11:25am. At some point I am going to have to make a serious effort at learning Python concurrency. Right now I really have no idea how do independent training on a separate thread. Compared to my F# skills with the Hopac library, I am just too lost in the Python ecosystem.

I just don't have the same kind of power here.

11:30am. Python concurrency and fixing the Spiral's editor support for the top level are my biggest challenge for the month March.

I need to get better at concurrency. 4/5 is not enough. I am barely 3/5 right now in Python.

I want to exercise this. This is the only thing worth doing in life. How could I ever want anything else?

...

Damn, Spiral v2 is awesome. February was my first real programming month with it and I am enjoying it. If only I could make time to redesign the top level so that those crashes when moving and deleting files stop happening it would be perfect.

I should do what I want.

11:35am. But for today, let me outline my goals.

  1. I need to CPS the Leduc game a step further. Instead of the regular game nominal, I am going to do a version that accepts the return as a continuation. When it is the player's turn to act, I'll send a message to the UI with the continuation.

...

Hmmm...I know what I want, but I am not sure how to make the design fit.

11:40am. Well, it will take some work. The real problem is fitting it in with the previous design.

I'll leave this first goal for later.

  1. I need to make the UI itself. This won't be too hard. I just need to expand the bindings and get more familiar with the Kivy library.

11:45am. I am thinking about this right now. Let me just give it a try.

I need to play around with Kivy widgets. What do I use for diplaying text? What about separators?

11:45am. https://kivy.org/doc/stable/guide/widgets.html

There is actually a separator used here in the catalogue example.

12pm. I am trying to make some concrete goals. It is good that I have a plan at the top level, but what are the concrete steps that I should do now?

12:05pm. I feel like forgetting the game and the language server issues and just grinding Kivy.

Since I will be using Kivy, I should go through the examples and translate some of them to Spiral. I should also fill out the bindings for the primitives.

Right now I only have a single layout and don't even understand how to do something as simple as a separator. I should take it easy and play with the library for a while. Get to know it while at the same time writing bindings and replicating the examples in Spiral.

This would be different than the furious outburst that I had imagined, but I should build my foundation in Python slowly.

Since I really want to, I should start planning how to redesign the top level of editor support. I want to avoid this as it would be very time consuming, but having the language be 100% stable shouldn't be an auxiliary goal. I should not blame myself for taking a detour. Even if it took me a few weeks so what.

When I am fully satisfied with language I will be able to rest more easily. I do not want to move a few files and think: 'Shit, now I have to restart the plugin.'

12:20pm. Do I want to play with Kivy or work on editor support?

I cannot do both.

12:25pm. Sigh. The later. I have to do the later. Better to do it now and enjoy the benefits of it throughout my work, than leave it for some indefinite future. Right now, it feels like Spiral's front porch has a pileup of garbage instead of the welcome mat.

February was really fun. I had enjoyed programming in Spiral itself after working towards this goal through the entirety of 2020 and the January of 2021. I did some non-trivial things and fixed what were the likely the last remaining bugs in the compiler.

I want the top level to be better. I am afraid that this issue might consume the entirety of March for me. But I should just face my fear.

At this point in my development I am frequently moving files around in the editor. I am not making single module tests anymore. I want the editor support to be roboust. The reason it is not is because my design is hacky and poor.

12:35pm. Let me have breakfast here, then I will go through the language from the top and identify all the pain points."


Monday 2021-03-01 19:56:15 by Arcerion

fixes, sorry for anyone who used the cheat menu when I did shit LMAO


Monday 2021-03-01 20:34:24 by Larry Gritz

Changes to accommodate upcoming Imath vector conversion changes (#2878)

I have submitted a PR to Imath that adds "interopability" constructors and assignment, that use some templates to allow seamless construction, assignment, and passing of "foreign" vector types to Imath vectors. This makes it easier library A that uses Imath vector types in its API to interact with app or library B that has a custom internal vector type, without a ton of ugly casts and copies. (See AcademySoftwareFoundation/Imath#91)

These created a few minor conflicts with OIIO's internal SIMD classes and their construction and casting from Imath types. This patch cleans up the ambiguities:

  • Make Imath::V4f -> simd::vfloat4 and Imath::M44f -> simd::matrix44 constructor explicit.

  • Make the simd types simd() method (returning the underlying raw SIMD type) also have a variety that returns a ref to a non-const vector, to ensure proper working of the _MM_TRANSPOSE4_PS macro.

Now I am going to commit a sin. This MUST get backported to OIIO 2.2 in order for it to not break against the upcoming Imath 3.0. This doesn't break ABI compatibility, nor change OIIO's primary advertised public APIs, but it does change the technically/informally public APIs of simd.h in ways that introduce the possibility that an app using those simd vector classes might need minor source code editing if they relied on those implicit constructors. Such software might need certain simd::vector4 foo = imath_bar to become foo = vector4(bar) and the same for certain matrix44 assignments. It is usually a big no-no to backport any change that could require editing of source code. But since the alternative is not being able to use the new Imath, I think this is the lesser evil, and maybe nobody out there is doing the thing that would need to be changed?


Monday 2021-03-01 21:06:32 by Johnson He

gi-gtk-?

Explaining to my future self in case I forget

I basically decided I'm annoyed w/ xournal's bugs so I should rewrite xournal in haskell/gtk. (blah blah destroyallsoftware talk). gi-gtk-declarative seems to be cool. Except it's really a one man show afaik and idk gui or functional frameworks anyways. I'll probably just use gi-gtk directly since I'm basing this all of the xournal source, which obviously is written w/ native gtk. Taking a quick look, xournal uses gtk2 and some deprecated features. This is a horrible horrible idea, but I'm probably going to slowly write my own wrappers around gi-gtk. Why? To hopefully stay close to gtk w/o being stuck to their exact api which is what looks like happened to xournal. Of course, it'll probably combust when I actually try to do it given that I've never done anything gui and have no idea what I'm doing. I'm only using haskell for the type system, less for the functional aspect so I don't mind doing a lot of stateful code. This is probably also a terrible idea. It's just idk if there are any gui libraries that are "portable" and have sufficient momentum behind them that isn't gtk basically (also idealogical reasons).

I'm going to read this in a year and realize how stupid this was.


Monday 2021-03-01 21:14:44 by João Valverde

CMake: Use CheckAPI's abort/termoutput with dissectors only

I believe this was the original intention, to use these API restricitons with dissectors only (not that I necessarily agree with that policy either), and through copy-paste and lack of clear guidelines it spread to other parts of the build.

Rename the checkAPI groups to make it very clear that this is dissector-only.

This doesn't mean, of course, that good programming practices shouldn't be followed everywhere. In particular assertions need to be used properly. Don't use them to catch runtime errors or validate input data.

This commit will be followed by another removing the various ugly hacks people have been using to get around the checkAPI hammer.


Monday 2021-03-01 21:26:29 by Sheila

Update intro-to-4geeks.md


title: "Introduction to 4Geeks Academy" subtitle: "I hope you read this entire article; this reading summarizes in 8 min the recipe to take full advantage of the academy. The most effective way!" textColor: "white" status: "published" tags: ["best practices"] authors: ["alesanchezr"] date: "2020-10-19T16:36:31+00:00" canonical: "" cover_local: "../../assets/images/e16d59ad-4c11-4ca0-8bfc-5a9d147c6c2e.jpeg"


Welcome!! 🤩👏 My name is Alejandro and I'm writing these words after years of teaching code and changing lives. Please I beg you to read until the end, I will try my best not to bore you!

What you already know

You are here to develop your coding skills to a point where you can be useful to society in order to: 1️⃣ Get a job, 2️⃣ Create your own company or/and 3️⃣ Adapt better to the now world.

What you did not know

You are also here because you need help, not only technical help but also spiritual help, and I say this in the most pragmatic way possible.

The biggest wall to become a developer is not in the syllabus or content but in your mind.

We are about to change the way you learn, the way you approach life, the way you sell yourself (therefore see yourself), we are tearing down old misconceptions about yourself, others and your professional life.

We are here to tear down the 💻 3 Walls Towards Code

During the past years we have identified specific reasons that cause students stop trying to be a developer or fail to complete the course or get a job.

Wall #1: Confidence 🥺 (Impostor syndrome)

Impostor Syndrome

At some point in our lives (some more than others) we all have thought we are the most stupid person in a room, if we keep thinking that for a long time and we don't get comfortable on any discipline we may even think that we are not that smart. BULLSHIT! You are a part of this school, we do not accept people that we don't think are smart enough to make a living as a developer, you need to believe that, especially on tough times!

If a particular exercise or project is hard, instead of thinking you are not good at this, look for new ways of absorbing the content. Talk to a mentor and we'll give you exactly what you need.

Every average person can learn to code to a point of being useful, coding gets more complicated when you specialize further in your career (Like A.I., Robotics, etc.), but you can make good money without having to study Math, without being good at numbers or without learning as fast as others (we may be able to fix that, by the way).

📝 Recipe to avoid losing confidence
  1. Avoid being stuck to long: Coding is tricky because you may be very close to solving a problem but you are stuck and you don't realize it. Or maybe you don't know how to start a problem but a quick 5 min talk with a mentor will clear the way. You need to ask for help no longer than 15 mins after trying on your own.

  2. Talk to other students: You may think you are the only one that does not understand, but if you talk to a couple of class-mates you'll see they are just like you, it will give you the confidence to ask questions.

  3. Talk to the mentors: A voice of experience is always effective, you have alumni and teachers that struggled before and are also struggling right now! They can help you during dark times, we are not only talking about giving you coding solutions, but giving you strategies to succeed in your (coding?) life.

Wall #2: Trust ✝

During all your life you've learned the same way, the educational system has put you in a box and trained you to learn slowly, limiting your ability to adapt to the new world of skilled fast-learning and self-learning professionals.

We know how to train you: we have done it over and over again, but we'll train in such a different way that you may not like it at first, it's only normal that your mind will want to go back to learning "slow but safe", without having to be uncomfortable or constantly challenged by our system.

📝 Recipe to avoid losing trust in our methods
  1. Follow the method! How can you know if it works if you don't try it properly? Do the homework BEFORE coming to class (flipped classroom), follow the syllabus in the recommended order, do the small exercises before jumping to the projects, come to every class, don't read books that will slow you down, etc.

  2. Ask Why? There is only so much we can say, we need you raise your concerns in a private way immediately the moment you start double guessing our methods, we do everything for a reason and I'm confident that we are going to be able to explain "the why".

  3. Humble yourself: There are lots of smart students that have successfully completed the course following the method, some of them work at Google, Amazon and other big all around the world companies. Please be humble enough to try and follow the course as it is. And discuss any ways of improvement with us, we are also humble enough to be open to try things that may work.

Wall #3: Inactivity 😴

This is a boot-camp, it does not matter if you do it on a full-time or part-time way, you need to set the boot-camp mindset and work every day like it's the last. The Human brain absorbs 80% more we it feels challenged and scared, if you idle for a day the brain relaxes and it's proven that you usually forget 60% of recently acquired information in just 1 day unless you use it again and again for a sequence of 7 days (at least).

These are not small numbers, 60% in a day and 90% if you don't practice for a week. You are waiting your time and money if you don't take the course serious!

📝 Recipe to avoid inactivity
  1. Talk to your spouse, partner and family: You need a break from almost everything, we know life it's challenging enough already to be adding more responsibilities, but this is only for a short period of your time. Rewards are endless. Everyone needs to fall inline! Try opening up the most time you can, having a private desk to work without distraction, etc. Your home has to be in sync with this moment of your life.

  2. Talk to your boss: You may need a few extra hours, weekend time, etc. Be smart about it or he/she could sabotage it because he is afraid of losing you.

  3. Don't miss class: Missing classes is our biggest concern, we are very concerned about attendance because it has shown that is the #1 deterrent to your motivation, missing two classes in a row is the perfect storm. You will need to have 1-on-1 mentoring and double the hours thru that week to avoid staying behind.

  4. Get involved: Just coming to class will not be enough, humans are emotional creatures, information attaches better to your brain when you are engaged, emotional, coming to events and study groups, publicly speaking about it, etc.

What next?

Please make sure you understand how the academy works:

  1. Platform: BreatheCode, The Syllabus (learn how to follow it), GeekPal, GeekForce, the lessons, exercises, projects and assets.
  2. The people: We are more than one thousand people now! Leaders, Mentors, the Alumni and Students, we are here to help and we are here to stay. Network, make friends, take advantage!
  3. The community: Communities are not one way, they just don't work like that to the events, support other students, give first and you will receive later. Slack, GeekTalks, Workshops, Group Studies.

Best Practices while starting to learn code

Don't read (much): Coding is like sport, the best what to get better is thru practice. Learn by doing Its practice
Sleep: Having a good sleep is as important as coming to class, coding is 100% intellectual, having a sharp mind is everything. Sleep
Learn how to ask: The biggest challenge you have to address at first is learning how to ask a question, picking the right works, know exactly want you want to know is the best skill for any developer. How to ask
Ask questions: Its a win-win, preparing the question will teach you, we get feedback from your understanding, it the biggest boost for your learning process. It's what you are paying for. Ask questions

< 2021-03-01 >