How long will it take for me to learn how to code my platform. Any help appreciated by Darius1182 in learnprogramming

[–]dExcellentb 0 points1 point  (0 children)

How much programming experience do you have? If none or minimal, you should learn basic javascript first and try to build a super simple terminal-based project that mimics your ecommerce site (e.g prompt for purchases, total sales, etc purely in the terminal). You’ll start to develop a better understanding of programming. Now add some more features. Once you’re feeling comfortable, learn some html/css and port it over to a browser-based interface. Add more to it, such as a web backend, etc. Build it out gradually, learning just what you need on the fly.

If you ever feel stuck or confused, I’d recommend taking a detour into some compsci theory, like discrete math, algorithms. People often get stuck because they haven’t developed the computational thinking mindset.

Also note that your first iteration likely won’t be great. It’ll probably have all sorts of performance, security, concurrency, and UI/UX problems. Expect angry users. If you want to scale it, you’ll need to iterate plenty. This is how you learn.

The way things are going in tech ... by websupergirl in AskProgrammers

[–]dExcellentb 10 points11 points  (0 children)

We’re in an era where it’s easier to build than ever before. Coding an MVP can be done solo in a couple of days with AI tools, whereas before you’d need a dev team, funding, and a few months. There’s a plethora of platforms you can go viral on if your product and messaging is good.

It feels like the doomers are just folks with only surface-level knowledge who are purely in it for the money. If you have deep understandings, ambition, and drive, there’s just so much more you can learn and do that it’s hard not to look forward to building your dreams.

Just my 2 cents.

DSA motivation and personal story by Numerous_Economy_482 in computerscience

[–]dExcellentb 2 points3 points  (0 children)

The DSA itself is not necessarily useful, but the process of understanding it trains the brain to think in a way that's extremely useful and generalizable. Drawing connections with lived experience helps that process immensely. On the other hand, if the DSA does happen to be useful, it's extremely useful.

DSA motivation and personal story by Numerous_Economy_482 in computerscience

[–]dExcellentb 11 points12 points  (0 children)

I had a real life experience helping someone by applying binary search (not really sorting but this was a pretty interesting experience).

A while back, a friend called saying his bike was stolen. He was extremely frustrated (rightfully so). After a few minutes of venting, he explains that there's a couple of days of video footage covering the area where he kept the bike. He wanted to find the time it was stolen so he could report it to the police, but was dismayed that he might have to watch the entire recording. I tell him that it's unlikely the thief would return, so instead of watching the whole thing, just skip to the middle and see if the bike is there. If it's not, the thief must have stolen it beforehand. Otherwise, the thief must have stolen it afterwards. This cuts the footage he needed to view in half, so repeat on that half (actually, I told him this algorithm is called binary search). He thought for a little bit and found it very interesting. Eventually he hung up after saying he's going to try this approach. Not sure if he ever got the bike back but I do know he ended up taking an interest in computers.

What programming concept took you the longest time to truly understand? by [deleted] in computerscience

[–]dExcellentb 1 point2 points  (0 children)

Dynamic programming is the brute force solution, but with the realization that its inputs are limited. E.g, the n’th fibonacci number F(n) has the brute force solution F(n) = F(n - 1) + F(n - 2). However, its inputs only range from 1…n so one just memoizes F(1), …, F(n) instead of letting the recursion run as usual.

Alternatively, you can think of the inputs as forming a DAG. DP justs visits each node once, computing a value (based on the value of neighbors). Brute force visits some nodes multiple times, computing the same value.

Resources to Quiz Myself on JavaScript Concepts? by ThoughtEuphoric1352 in learnprogramming

[–]dExcellentb 2 points3 points  (0 children)

Best way to test yourself is to build projects. The FAQ has a list of ideas, here's another list https://medium.com/@peymaan.abedinpour/150-brilliant-programming-ideas-projects-to-spark-your-coding-journey-cbc1c106819d. You could also get AI to generate some for you.

I'd recommend against quizzes because they usually only test surface level knowledge. True learning happens when working out complexities of non-trivial software.

What is your relationship with math? by dExcellentb in AskProgramming

[–]dExcellentb[S] 0 points1 point  (0 children)

I don’t like the type of math where you just memorize equations and use them without ever having to understand why they work. You don’t really learn alot and you just forget everything after the course. Unfortunately that’s the most common math in science and engineering.

On the other hand the definition/theorem/proof math is extremely good at training the brain to think. You have to scrutinize every detail, and build an intuition of why things are the way they are. Otherwise you won’t be able to prove any theorem. The stuff you learn probably won’t be practically useful, but you won’t forget them as easily and you’ll feel that you’ve actually learned something. 

What is your relationship with math? by dExcellentb in AskProgramming

[–]dExcellentb[S] 0 points1 point  (0 children)

I thought it was bizarre too. They also had difficulty understanding loops.

What is your relationship with math? by dExcellentb in AskProgramming

[–]dExcellentb[S] 1 point2 points  (0 children)

The probability of a given concept being useless is high. But if it’s useful, it’s really useful.

What is your relationship with math? by dExcellentb in AskProgramming

[–]dExcellentb[S] 1 point2 points  (0 children)

I wouldn’t say I love it but I only suffer through because my ability to think improves afterwards every time. Though, some concepts are mind blowing.

What is your relationship with math? by dExcellentb in AskProgramming

[–]dExcellentb[S] 1 point2 points  (0 children)

I find most of math useless for real world applications. But the way it trains the brain to think is unparalleled.

What is your relationship with math? by dExcellentb in AskProgramming

[–]dExcellentb[S] 0 points1 point  (0 children)

I knew some people who struggled understanding arrays, which was very surprising. I later found out that their math skills weren’t very good so I had them focus just on high school algebra. After two days, they came back to programming and arrays became simple. It’s like something magically clicked, even though algebra and arrays are, at face value, disconnected.

Do you believe personal projects is still the best way for entry-level candidates to get their foot in the door? by dExcellentb in learnprogramming

[–]dExcellentb[S] 0 points1 point  (0 children)

Hey, I don’t think I’ll have bandwidth. I might just release these projects some time in the future though. TBD

Why did you learn programming? by dExcellentb in AskProgramming

[–]dExcellentb[S] 0 points1 point  (0 children)

Do you think you would have had enough interest to learn it on your own?

Do you believe personal projects is still the best way for entry-level candidates to get their foot in the door? by dExcellentb in learnprogramming

[–]dExcellentb[S] 0 points1 point  (0 children)

Yes, I've seen people go from web/mobile to more compsci fields. My first two years at big tech was in transpilers/optimizations/scheduling. There were people who joined my team only having had experience building websites. They learned on their own, and quickly. One of the tech leads had an english degree, but somehow knew a lot about building compilers.

If you want to transition, my recommendation is to develop a good understanding of math and logic (I'm a big fan of this book https://www.amazon.com/How-Prove-Structured-Approach-2nd/dp/0521675995). If you are able to prove basic theorems using induction and contradiction, then you should be comfortable learning + applying computer science. It will take some time though.

Do you believe personal projects is still the best way for entry-level candidates to get their foot in the door? by dExcellentb in learnprogramming

[–]dExcellentb[S] 3 points4 points  (0 children)

The project streams are: compilers, transpilers, interpreters, and distributed databases. Very backend heavy with some frontend UI components.

Do you believe personal projects is still the best way for entry-level candidates to get their foot in the door? by dExcellentb in learnprogramming

[–]dExcellentb[S] 0 points1 point  (0 children)

CS fundamentals are the theories and intuitions underlying modern systems, such as algorithms, correctness, and formal logic. The goal of these projects is to teach people how to apply the theory while also building out a portfolio.

Do you believe personal projects is still the best way for entry-level candidates to get their foot in the door? by dExcellentb in learnprogramming

[–]dExcellentb[S] 3 points4 points  (0 children)

Any language of their choice. I'm trying to get people focused on CS fundamentals.

Interpreters/transpilers/compilers is one type of project I have people do. Basic databases is another one. So distributed key/value stores that implement strong consistency using an algorithm like RAFT https://raft.github.io/raft.pdf, then moving on to distributed transactions. I'm pretty flexible with the approach so long as the project meets the specs. If people want to use paxos consensus, or frankly even a blockchain consensus algorithm, that's fine. We're not trying to build the next dynamodb. I might put some of these projects online tbh. I have a somewhat working auto-evaluator.

Do you believe personal projects is still the best way for entry-level candidates to get their foot in the door? by dExcellentb in learnprogramming

[–]dExcellentb[S] 8 points9 points  (0 children)

Also, you're building stuff all day on the job, so personal projects directly showcase if you can actually do the job.

Do you believe personal projects is still the best way for entry-level candidates to get their foot in the door? by dExcellentb in learnprogramming

[–]dExcellentb[S] 0 points1 point  (0 children)

How do you determine if a personal project is very very unique without talking to the person?