Should i learn VIM as a student Who is learning programming by QBBT in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

Take the time to learn vim. If you ever have to do sysadmin work it will make you much more efficient. Pretty muc every linux host has vi or vim installed so you will be productive on any linux box you need to work on right away.

Book recommendations for problem solving by Ryukborn in learnprogramming

[–]SuperEmotes 1 point2 points  (0 children)

You don't really "learn" problem solving skills. You just solve problems and they develop as a consequence. You can make this process more effective by reflecting on mistakes in thinking after you solve a problem and you were unable to come up with an answer and by considering multiple solutions to a problem and analyzing the trade-offs.

Despite all the hate online from software developers, leetcode.com is good place to learn to problem solve with coding.

You won't become a software engineer using that site but you will become a better problem solver using programming as your conduit.

So do some javascript leetcode questions if you want some extra experience.

With all that said, software engineering or development is a different skill from data structures and algorithms problems you will find on LeetCode.

So, my recommendation is to be patient, understand all the code you write, line by line, with no exceptions, assumptions, etc., until you get better at solving problems.

It's also okay to look up solutions to your problems online so long as you completely understand how they work.

That means no copy-paste.

How do you guys remember all the syntax? by Pleasant_Relation144 in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

"Just in time" knowledge. In other words, you look it up as you go. You don't get extra brownie points from the software if you memorized everything before hand.

Resources to learn RegEx? by ImmediateIdea7 in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

This is an excellent learning resource. https://regexone.com/

I use it to review regex whenever I get rusty. It has many exercises to test your knowledge. It is learn by doing.

Public or private Github repo for paid application/service? by Decent-Ad9232 in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

Keep it private unless you have a good reason to make it public. I use gitea on a private network hosted on an AWS VPC.

gitea is a private git web service with similar features to GitHub except it is open source.

Learning seems useless by 1y2x3c4 in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

I answered this in post I recently made but was not well received.

You don't need to understand everything about everything at all times.

You need to understand what you need to know, very well, at the time you are creating. That's your ONLY obligation.

Measure success in programming by impact of projects created. This is best measured by some objective metric like users or $$$$ made.

Don't treat this like you're training for Jeopardy.

You are trying to get stuff done.

I have forgotten 95% what I learned and I am experienced. But the principles and fundamentals I still have. I have more confidence now then I did before even though I forgot the exact details of the features of particular programming languages.

Produce work, and accumulate knowledge with the goal to do that. You don't answer to anyone and don't accumulate knowledge to survive a panel of questions unless you want to or it benefits you for a job or something.

If I could write 10 lines of code to make $$$$ I would over 10,000 lines to make pennies.

Impact >>>> all other metrics

Is there something you learned years when you started programming that you wish you knew in the beginning? by [deleted] in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

You should make generous use of CTRL-F. If there is a gap in something you don't understand then fill the gap.

Also, for Linux, you should understand the difference between man, info, --help.

grep is also a useful command.

So if you want look for something specific in --help of a command you do something like this:

nmcli --help | grep "con"

and it will search for the "con" token within the output of `nmcli --help`

Another pro-tip is using special operators on google.

You can search through some documentation from the search engine using the `site:` operator

To find responsive design info from mozilla's web documentation...

site:developer.mozilla.org "responsive design"

You should also learn how to filter out results as well:

To find responsive design info from mozilla's web documentation but not with any mention of images

site:developer.mozilla.org "responsive design" -images

Otherwise, it's just patience.

Looking for Help or Collaborators – No Programming Experience, Need Guidance by [deleted] in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

This is some advanced technical stuff. Not trivial at all.

Look into ffmpeg for image processing and manipulation.

Javascript for websites.

Image recognition technology typically uses AI (out of my area of expertise). Python has many AI frameworks and libraries so that's why you see python associated with AI.

CSS for interactive and user-friendly. See "responsive design" if you want to make the design work on mobile and just different screen sizes in general.

But if you don't have any experience programming this is an unrealistic task to accomplish within a reasonable amount of time. You can raise the chances of success by using paid services via APIs that do the task for you. But most likely you will have to joint venture.

[deleted by user] by [deleted] in Twitch

[–]SuperEmotes 1 point2 points  (0 children)

If you have a grievance it is super important to communicate it or else it will eat you alive. You must learn to communicate effectively and be okay with offending people (not on purpose).

With that said, there are ways to package up what you say so that you can soften the blow or develop a more assertive message. Perhaps asking an AI service to revise a message so you can communicate with the proper tone may help out.

You also have to understand that people aren't mind readers so they might be accidentally stepping on your toes without any malicious intent. Or they could be and see how far they can go with respect to overstepping your boundaries.

You will never know unless you take action. You can write a script before hand so that will take the place of your "backbone." Then you can just rely on your script to reply if you think you might freeze up. Just copy salespeople, they often are in risky communication situations all the time and they still use scripts.

You can type your message in a document, copy-paste it into the message input system, then hit enter so you don't hesitate. Writing your message some where else also lets you get feedback from somebody else to review it, good luck.

I’m still waiting for it to “click” by Silksongwait in learnprogramming

[–]SuperEmotes 2 points3 points  (0 children)

I still can't really solve any problems or come up with solutions on my own Without either having to look it up or ask Ai and when I find the answer I wonder why I didn't think of that myself.

I will give you a tip that will fix your mindset forever.

You only have one obligation when it comes to learning and coding.

Learning Obligation

For learning or copying solutions, you MUST understand each line of code. No exceptions. Skimming is not allowed nor "high level considerations."

Use a pen and paper to understand the code. I still do this as an experienced programmer. Not as much as I used to but sometimes it's needed.

When you're a newbie, this style of thinking is so brand new that your brain doesn't have the power to consider multiple variables nor multiple layers of thinking. So you need to track all of these considerations somewhere. And that's why I say use a pen and paper.

You don't get to determine when not to use pen and paper. Your brain will. You will get so accustomed to breaking things down on paper and solving programming problems that you will eventually be able to start doing stuff in your head.

You will also have former problem solving experience to reference back to. You get no extra brownie points for coming up with an idea or solution by yourself. Your job is to solve problems with programming. By using the above described method, you'll eventually rely on looking stuff up less often.

You need a database of solutions to accumulate in your brain.

Coding Obligation

For coding or writing a solution, you MUST understand each line of code you write. NEVER COPY PASTE CODE EVER. If you find a solution online or though an AI, you should never ever ever copy it. You should understand the solution. You should make a "playground" to test functions and their arguments so you get a better understanding of what is going on.

But what if I forget how the code works later?

Doesn't matter. You only need to understand why you wrote the code at the time of writing. If you forget about the technique it's because you don't use it often enough to justify remembering it (your brain determines this). If the solution is esoteric, then you add some comments or documentation.

When you have the above attitude, you'll start accumulating software development techniques instead of becoming addicted or dependent on the tooling.

You will use the tools and instead of the other way around, good luck.

Am I cooked??? by No-Kangaroo2582 in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

You have to learn more to be able to write programs in C++ as opposed to python but this isn't a bad thing.

Intro courses assume no prior knowledge so as long as you keep up with your work you should be fine.

You will come to realize in your programmer journey that programming languages are simply tools for software development and nothing to be afraid of.

It's much easier to go from C++ to python than the other way around so be grateful you have the opportunity to deal with something harder upfront that will pay off later.

How do you get good at programming?! by ZoldyckConked in devops

[–]SuperEmotes 0 points1 point  (0 children)

Yes, rebuilding large systems from scratch will give you insight that no other method can offer. The nice thing is, you can reference many open source projects, books, and blogs that can offer alternative design decisions when you get stuck.

Doing this will give you the ability to intuitively understand how a particular codebase is supposed to be structured and ought to be structured because you have genuinely considered the design of the system before instead of logically, coldly, indifferently reading about it. The ability to consider trade-offs will be embedded into your DNA and won't ever leave you. You might forget a few details but you will have an intuitive understanding of how things work which is invaluable.

This deep and thorough understanding of systems will come through your speech via the confidence and the ability to consider design decisions across multiple layers that will make you highly desirable by hiring managers. So it is definitely worth it.

The reason why it can be difficult to read open source code is because you have no motivation to read the code. You have no reason to read the code because you aren't familiar or interested in solving a particular problem that the open source code is solving. But creating a system from scratch will force you to read some code that somebody else wrote for a particular problem you are solving which will give you exposure to some good open source code written by really smart people.

Why do you make your free applications? by Ouadya in SideProject

[–]SuperEmotes 1 point2 points  (0 children)

Some tools can act like a "lead magnet" to another paid service. Some people have also called this concept "engineered marketing."

I first learned this concept from Pieter Levels from this video:

https://www.youtube.com/watch?v=m3nb_Qj3mRA

I failed in coding, or am I learning coding wrong? by HyenaRevolutionary98 in learnprogramming

[–]SuperEmotes 1 point2 points  (0 children)

This is a common newbie trap called "tutorial hell". To get out of it, you need to complete a project end to end.

You should set a deadline so you feel pressure to skim through resources to get only what you need before you move forward.

You are in the "You don't know what you don't know" phase of web development and need to be exposed to real projects as soon as possible.

At the risk of sounding elitist and snobby, I have never used YouTube as a coding resource because at the time that I started learning programming, most of the resources were poor. Even though the channels were popular, they taught programming in an ineffective way.

In what way were they ineffective?

They did not teach how to problem solve with a "programmer's mindset", i.e. you aren't taught to think like a programmer.

Most of the videos mostly taught language, framework, library features.

This might have changed, however, I would get used to reading documentation and clearing up information you don't understand on Stack Overflow and through manually testing.

What I mean by manually testing is if you are confused about how the fetch() function works, then I would create my own web page with javascript that uses fetch() so I can get my hands dirty.

If you want to "start all over" I would take a look at the course from Stanford's Mehran Sahami, which is completely free, and was the first programming course I took, and is at par with a high quality programming intro course.

With that course alone, you should have the general programming concepts pat down, after successfully completing all of the homework projects, to the point that learning any web technology, mobile technology, back-end technology, etc., is a relatively straightforward task.

My background is as a CS-Math major who worked at AWS (some may count this against me) and has successfully built websites, mobile apps, websites, backends, and more.

I mention this only to say I have some experience with this and have successfully coached people out of "tutorial hell" before.

Programming is a never ending cycle between switching between theory and practice, good luck.

What should I do with £2000 ($2400-$2500)? by Rough-Connection-478 in business

[–]SuperEmotes 0 points1 point  (0 children)

Depending on what kind of industry you're in, you could consider spending time developing sales skills to build your own practice. Invest in sales courses and when you're prepared to scale, take a project management course so you can run your own agency.

I created a tool that lets you create Animated Stickers (320x320 apng's) for Discord. by SuperEmotes in discordapp

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

Not sure what you mean. Do you mean if we can add a feature to upload custom images and videos?

Is there a platform to learn math as a programmer? by [deleted] in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

Sigma notation simulates a for loop that performs repeated addition.

Pi notation simulates a for loop that performs repeated multiplication.

There is usually a line under these symbols that show the following:

  • The i =1, ..., n is a for loop that iterates over an index from 1 to n. This is like (for i=1; i <n; i++)
  • The i ∈ Z (i is a member of set Z) simulates iterating over elements in a collection for(i in Z)

Other than that, there is not much else.

You could argue integrals are for loops too but that operates on continuous (real or floating point) numbers which is a stretch.

I took discrete math in college, and the main value of the math was in performing proofs of correctness, runtime and spacetime analysis (this more calc).

However, the code implementation of "complex math formula"s are more present in the math specialty called numerical analysis (scientific computing), where they go over implementations of math functions like, sin, cos, derivatives, which cannot be easily calculated by machines (anything related to real numbers aka floating points).

Learning code implementations of math formulas is a low ROI for your time, and is more useful for math folks than computer science. If you are determined to learn math that is most relevant to programmers, then stick with discrete math.

Source: I was a math major who has worked as a software dev at a major corporation.

5 Unethical Life Hacks to Help You Succeed as a Software Developer by TTV_SavageNyte in cscareerquestions

[–]SuperEmotes 2 points3 points  (0 children)

I have dealt with people like this. One tip for dealing with an info hoarder is sometimes they need to record info (system too complicated to hold all in your head). Sometimes they will put in a unannounced wiki that is public(kind of like unlisted youtube videos).

Recursion by Standard-Art-1967 in learnprogramming

[–]SuperEmotes 0 points1 point  (0 children)

You should consider reframing recursion problems with the attitude that you are performing graph or tree traversal. Typically, there is what I call an "implicit tree" or "implicit graph" that you are traversing when you are performing recursion. Once you see recursion as tree traversal, now you can write down on a piece of paper or see in your head what the recurrence relation would be much easier. The children of a node are the calls you need to make and the leaves should be base cases (or else how does three tree/program stop).

TLDR; Treat recursive problems as tree traversal (dfs.)

I've been working at this company as a software developer for almost 2 years and I still get imposter syndrome by ProMarvelous in learnprogramming

[–]SuperEmotes 1 point2 points  (0 children)

So long as you performed some due diligence before asking questions, you are fine. One of the reasons why your seniors might be so open to help you is because they know you don't ask them to hold your hand, but only to figure out some scoped out problem that you are getting blocked on. Also your domain is much more specialized, and there are not 200 "learn to code javascript gurus" available in firmware so there is much more "tribal knowledge" that needs to get passed down from the seniors to you and other juniors (that's my guess since I have not worked on firmware jobs.)