Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "logic math"
-
Tips for all the programmers out there:
- A programmer is not a PC repair man, just no one seems to remember about that
- Programming is thinking, not typing.
Counting starts from zero, not one.
- Even after completing a degree and courses and working on IT projects, learning never stops. If you want to stay competitive you should also work on personal projects that force you to use languages and software you never work with on the job.
- You don’t need serious math skills to be a developer. However, you’ll need basic algebra, logic, strong problem-solving skills, and most of all, patience.
- You don’t need a degree to be a developer - programming is like almost any profession: if you’re good at it, people will pay you for your skills, regardless of how you got there.
- Sleeping with a problem, can actually solve it.14 -
At the peak of the dotcom boom of the early 2000s I had been hired above my skill set because recruiters were desperate to fill seats. I had a pulse and could code even a little so they hired me.
I was the senior web developer on an agency contract with a major corporation working on an ASP (pre ASP.NET) website. I had hired a temp to help me with the workload and one day, in exasperation at my spaghetti code and non-understanding of MVC concepts, he threw his hands in the air and exclaimed, "Do you even know what you're doing?!"
Not having the type of personality to give any subordinate a dressing down for insubordination, I just felt awkward. He was right, of course. I used that as impetus to study more and attend conferences. I'm still a below-average coder because my brain struggles with math and logic. A lot. But that definitely took me down a peg. All those recruiters treating me like I was hot snot on a silver platter when I was really just a cold booger on a paper plate.4 -
A logician comes back from paternity leave and enters his shared office.
His colleague: Hey! Congratulations with your newborn, is it a boy or a girl?
Logician: Yes.1 -
I could bitch about XSLT again, as that was certainly painful, but that’s less about learning a skill and more about understanding someone else’s mental diarrhea, so let me pick something else.
My most painful learning experience was probably pointers, but not pointers in the usual sense of `char *ptr` in C and how they’re totally confusing at first. I mean, it was that too, but in addition it was how I had absolutely none of the background needed to understand them, not having any learning material (nor guidance), nor even a typical compiler to tell me what i was doing wrong — and on top of all of that, only being able to run code on a device that would crash/halt/freak out whenever i made a mistake. It was an absolute nightmare.
Here’s the story:
Someone gave me the game RACE for my TI-83 calculator, but it turned out to be an unlocked version, which means I could edit it and see the code. I discovered this later on by accident while trying to play it during class, and when I looked at it, all I saw was incomprehensible garbage. I closed it, and the game no longer worked. Looking back I must have changed something, but then I thought it was just magic. It took me a long time to get curious enough to look at it again.
But in the meantime, I ended up played with these “programs” a little, and made some really simple ones, and later some somewhat complex ones. So the next time I opened RACE again I kind of understood what it was doing.
Moving on, I spent a year learning TI-Basic, and eventually reached the limit of what it could do. Along the way, I learned that all of the really amazing games/utilities that were incredibly fast, had greyscale graphics, lowercase text, no runtime indicator, etc. were written in “Assembly,” so naturally I wanted to use that, too.
I had no idea what it was, but it was the obvious next step for me, so I started teaching myself. It was z80 Assembly, and there was practically no documents, resources, nothing helpful online.
I found the specs, and a few terrible docs and other sources, but with only one year of programming experience, I didn’t really understand what they were telling me. This was before stackoverflow, etc., too, so what little help I found was mostly from forum posts, IRC (mostly got ignored or made fun of), and reading other people’s source when I could find it. And usually that was less than clear.
And here’s where we dive into the specifics. Starting with so little experience, and in TI-Basic of all things, meant I had zero understanding of pointers, memory and addresses, the stack, heap, data structures, interrupts, clocks, etc. I had mastered everything TI-Basic offered, which astoundingly included arrays and matrices (six of each), but it hid everything else except basic logic and flow control. (No, there weren’t even functions; it has labels and goto.) It has 27 numeric variables (A-Z and theta, can store either float or complex numbers), 8 Lists (numeric arrays), 6 matricies (2d numeric arrays), 10 strings, and a few other things like “equations” and literal bitmap pictures.
Soo… I went from knowing only that to learning pointers. And pointer math. And data structures. And pointers to pointers, and the stack, and function calls, and all that goodness. And remember, I was learning and writing all of this in plain Assembly, in notepad (or on paper at school), not in C or C++ with a teacher, a textbook, SO, and an intelligent compiler with its incredibly helpful type checking and warnings. Just raw trial and error. I learned what I could from whatever cryptic sources I could find (and understand) online, and applied it.
But actually using what I learned? If a pointer was wrong, it resulted in unexpected behavior, memory corruption, freezes, etc. I didn’t have a debugger, an emulator, etc. I had notepad, the barebones compiler, and my calculator.
Also, iterating meant changing my code, recompiling, factory resetting my calculator (removing the battery for 30+ sec) because bugs usually froze it or corrupted something, then transferring the new program over, and finally running it. It was soo slowwwww. But I made steady progress.
Painful learning experience? Check.
Pointer hell? Absolutely.4 -
TLDR: Skills and background or dedication for becoming a good programmer?
So I almost finished the bootcamp on my company, there is only 2 people. Me and another guy who is from math major. He wanted to learn programming so he applied for the job. He doen’t know sql, any backend language, and not even html or css when he joined. The only thing he knew is for looping and if condition logic. He survived 1 months or so by learning a lot here. C#, .net mvc, sql, decent css and html. I believe he worked hard by learning it by himself. But the company he can’t continue anymore. I doesn’t know the reason but probably because he is seen as not good enough. Sure he is kinda slow when adding some feature to our small project but we need to find how to do it by ourself mostly. Now I’m alone with another few weeks to continue4 -
Grr the feeling when one of your interviewers has a hard-on for trying to find ways to sink your boat.
Went to a job interview yesterday during my lunch break for a mid level dev job in central London , i have been trying to transition from a junior role.
First were two senior devs , that went quiet well...
Next up was the tech lead and a team lead, lets call the latter Mc-douche for some problem
The tech lead was fine, very relaxed and clam guy more interested in seeing the logic of my answers and questions as to why i did certain things in this or that manner....
Mc-douche, he would always try to find something wrong then smile smugly and do that sideways head waggle thing
His tech lead is like " yup that's correct"
But he would be like " yeeess but you didn't think about bla bla bla" then talk about shit not even present in the context of the question
Ah also he would ask a question then cut me off as soon as I begin to say that i didnt mention or take into account x or y even though literally my next sentence is about address those details he wanted.
let me fucking finish you dickbag 😡
Had a js question, simple stuff about dom manipulation, told not to bother with code... yet McD starts asking me to write the code for it....managed it , quite easy stuff
Then a sql and db test , again technlead was happy with the answers and the logic am approaching the question when writing my query, yet mc d Is bitching about SQL syntax....
Ok fine, i made a simple mistake, I forgot and used WHERE instead of HAVING in a group by but really?! Thats his focus ?!
Most devs I know look up syntax to do stuff , they focus on their logic first the do the impl.
Then a general question on some math and how i would code to impl a solution on paper
That was a 20 mins one, the question said they didn't expect me to finish it totally so
I approached it like an exam question.
First
I focussed on my general flow of my process, listing out each step.
Then elaborated each step with pseudo code showing my logic for each of the key steps.
Then went deeper and started on some of the classes and methods , was about to finish before it was time up.
Mc douch went through my solution
And grudgingly admitted my logic was "robust enough" it was like he really had to yank that deep out of his colon.
I didn't really respond to any of his rudeness throughout the whole interview,i either smiled politely or put on a keen looking poker face.
Really felt awful the rest of the day, skipped the gym and went home after work, really sucks to have a hostile interviewer.
Pretty sure i wont be hearing anything good from them even though the three other interviewers were happy with me I felt.4 -
I wrote a Blender plugin that uses vector math, matrices, calculus, trigonometry, and likely other types of math. There's recursion, filesystem access, image processing, interface logic, and on and on.
And worst of all - other people are expected to use it, so there's added pressure to do a good job.
Oh, the hours I spent trying to figure out why the imported geometry looked like an exploded mess. Fumbling around with mathematics I didn't fully understand was exhausting. Finding help was impossible at times because I didn't have the vocabulary to even describe the problems I was having. And getting it to complete an import before the heat death of the universe was not easy.
Every time I made progress and thought I was done, I would discover a bug that other importers didn't have, leaving me to sift through languages that definitely aren't Python to see if I could reverse engineer the logic they used.
I almost gave up a few times, but didn't.
Now I have something that, while not used by many people, works very well, is very efficient, and doubles as a palette cleanser when I need to do something for fun or for a challenge. Plus I learned a lot along the way.4 -
Over the past 2 months I have interviewed with several companies and 2 of them stood out at rejecting me. Let's call them Company A, and Company B!
> I know right? Developers are bad at naming!
I guess part of it is my fault too! I am old and slow. Doesn't like competitive programming and already forgot most of how to answer algorithm question. I can't even answer some of the algorithm question I've flawlessly answered back when I was fresh out of University.
## Company A
When I got chance to interview at Company A, they require me to answer HackerRank style interview. It's my first time in nearly a decade of working in the industry to feel like I'm in a classroom exam again. I hate it, and I deliberately voiced my distaste to the answers comment:
// Paraphrasing
// I'm sorry, I'm dumb!
// I never faced anything like this in real world work...
// ......
But guess what? My answer still pass the score, have a call with their VP, which proceed to have another call with their Lead Engineer.
Talked about my experience with Event Driven System and CQRS+ES and they decided that I am:
- Arrogant
- Too RND in my tech stack
- And overkill in CQRS+ES
And decided they don't need me.
They hate me for having a headstrong personality which translates as Arrogance to the perceiving end.
## Company B
Another HackerRank style interview. Guess I passed their score this time without me typing some strong comment and proceed to have another test with their Lead Engineer.
This time they want 5 question answered in google docs within 60 minutes.
Two of them stood out to me for being impossible to work on 12 minutes (60 / 5 if you're wondering). Or maybe I'm just old and dumb?!
The others are just questions copied word for word from Geeks For Geeks.
One of the question requires me to write a password brute force attack to an imaginary API.
The other requires me to find a combination of math `+` or `-` operation from `a strings of numbers` that results in `a number`.
My `Arrogance` kicks in and I start typing a comment
// Paraphrasing
// I am sorry but I feel this is impossible for me to think of in 12 minutes
// (60 / 5 if you're wondering)
// But I know you guys got this question from Rosseta Code!
// Here's the link, but I don't know the logic behind it
See? I've worked on this question back when I was still a University student and remember where to look at.
Unsurprisingly, I've heard the feedback that I was rejected although I've answered one of their question `FLAWLESSLY`. I know they are being sarcastic at this point. haha.
---
I was trying to be honest about what I can and can't do in the `N` minutes timeframe and the Industry hates me.
I guess The Industry love people who can grind `GFG` or other algorithm websites, remember the solutions out of their head, and quietly answer their `genuinely original question` without pointing the flaws back at them.9 -
I have been debugging for like hours trying to figure out the cause an unknown bug spoiling my UI by making my elements overlap.
I'm working on a Unit Converter that takes kWh and then converts to mWh. (Logical Conversion: 1000 kWh = 1 mWh).
Just an easy shit i thought, using Javascript I just passed the dynamically generated kWh value to a function that takes maximum of 6 chars and multiply it by 0.001 to get the required result but this was where my problem started. All values came out as expected until my App hits a particular value (8575) and outputs a very long set of String (8.575000000000001), i couldn't figure the cause of this until i checked my console log and found the culprit value, and then i change the calculation logic from multiply by 0.001 to divide by 1000 and it came out as expected (8.575)
My question is that;
Is my math logically wrong or is this another Javascript Calculation setback?13 -
I hear a lot of complaints that having to study math/physics/* subjects is useless, because you don't need it in 99% of the IT jobs.
But so is software engineering, isn't it?
The tiniest companies ask for doctor titles, 19 years old senior developers with 30 years experience, architects and teamleads in the job listing and when the reality hits you, you find yourself being the bugfix bimbo and red button logic designer for architectures called "big pile of shit"©®™. And it will never change!
There is no time for proper software engineering when the deadline is set to the day before yesterday. And software engineering does not yield profit immediately. A big clusterfuck of features and bugs that somehow compensate each other does.
You study all this stuff to learn how to learn. Even if "you'll never need it again"™6 -
I didn’t. I suck at it. That’s why I ended up being a manager. Not that I didn’t try, but according to a scientific test I took in college to figure out why I kept failing my math classes, I’m screwed in the math and logic department. I sure know how to read and write, though, so I guess I have that going for me.6
-
The difference between procedures and functions never troubled me. Until it did and now I'm just thinking it for the past hour! Here it is: Procedures perform some logic while functions (like in math) return a value. Daaaamn!4
-
> be me
> studying 1.5 years liberal arts stuff and general education class at community college
> transfer to a 4 year university.
> realize I need a major
> Realize I also I wanted to 9ne day have a family.
> realize family would need money
> "struggling actor" not a great choice
> pray about what I should be doing
> get distinct impression that instead of attending the session on majors at the college of fine and performance arts to go to session with the college of Science and engineering.
> hear pitch for computer science.
> signup for introduction to programming taught with c++.
> A couple semesters down the line take 3 classes all at once Discrete Math 1, Linear Algebra, and database design and administration.
> around week 6 realize that all 3 classes revolved around sets and set logic and set math.
> realize rdbs's are "applied" set math and that Each class a little more "applied" than the former.
> Be genius at SQL and set math
> havereally smart database teacher mentored me
> get introduced to the recruiter at the career fair.
> get interviews
> get flown out for 2md interview
> get internship
> do work, and get project back under budget
> a job offer
> finish senior year
> start as a "real" developer supporting business data and analytics.
> ???
> profit.3 -
So I got to thinking about computer systems and how they are all based on binary. So the math we perform is obviously based upon a binary approach. Then I started wondering if there was value in exploring math using a different base. I know in math we can shift things to a different domain to do things more efficiently (like Laplace transforms to get to the frequency domain to do freq based calcs, or quaternions to do various orientation calcs). I thought maybe a base 3 logic might do some calcs better. I searched and found that indeed some ternary computing systems had been built. I then searched for libraries that might employ ternary math as an exploration exercise. I didn't find anything except academic articles (few at that).
This idea of changing the base in the math (and possibly the frame of reference) is interesting. It is like searching for treasure and not being sure it even exists.
https://en.wikipedia.org/wiki/...5 -
Back from the dead with more vaguely-obscure technical bullshit
Working on a chatbot for my BS-CS. Almost done with college, so the assignment is to make a bot that recommends you a CS career. Cool.
I get through making a joint personality and skill-interest quiz that gives you number grades on different spectra. So far, so good. But this project has to be done entirely in pandorabots' online editor. So no scripting. Zero scripting. 100% markup language. That means to even do math, you need to copy a standard library off GitHub.
I mean, that's fine and all, but the syntax is just atrocious, because everything in AIML is input->response. If you ask the bot "what is 5+5?" you must have it go:
- recognize pattern WHAT IS * + *
-> redirect -> XADD * XS *
-> do math -> recurse result
-> 10
uncomfy. Plus, variables can only be accessed through <get> and <set> tags. But mangeable.
So here's where the story becomes a rant.
In the standard docs, there's all these math functions, and they work. There's also logic.
And then there's this fucker
XIF [ * ] XS [ * ]
Which has no documentation and just doesn't work. No idea what the brackets mean. Tried putting in TRUE, tried putting in true math statements (5 XEQ 5), tried putting in recursion tags to trick it, tried everything. It just ignores it.
There is not a single comment, stackOverflow post, or youtube video that even acknowledges the existence of this thing.
So unless I want to convert the entire logic of my program into nested SWITCH statements with the <condition> tag, I'm just fucked.
The icing on the cake is, I go to tech support on Pandorabots to ask for help with this. What do they have except a chatbot to cheerfully tell me that no humans are around to help me right now?
gonna have to build an entire fuckin turing machine in markup tags to calculate whether x = 3
(:1 -
Taught myself assembler at 13 (this was the mid 1980s) and wondered how the hell people could stand to do this. Then I found out there were more abstract languages like BASIC or COBOL. So I taught myself BASIC and MS-DOS batch scripting. Various other languages came later (PROLOG, Pascal, C, Smalltalk, C++, VisualBasic, etc). But it’s never been easy for me because I suck at math and complicated logic structures. Especially not good with OOP. My brain was ruined by learning procedural coding first. It refuses to incorporate OOP.
-
Today I finally experienced the power of something I learned in university: propositional and predicate logic.
Many developers I know think that such education is useless. Well, today I have proven that it is very useful. On a day to day basis, working on banking software, complexity in purely logic is very low. However, we have a screen that must show or hide elements based on some input values and conditions associated with certain elements. How hard can that be, right? Well, there are many variables to take into account and as such it's absolutely not trivial.
This screen didn't work properly and maintaining the code is hard as there is a lot of logic to show/hide, enable/disable things and so on. After quite some time and attempts by fellow developers, I decided to refactor the whole thing. I'm responsible for the quality of the software and it was quite degrading, so I had to do something.
In order to get things working properly, I defined collections of constants (ui elements) and predicates. Then, I defined for which element what predicates must be true, in order to hide/show, disable/enable etc. I then translated these predicates into code. And guess what? It works! Of course it works. It's logic. But I'm very pleased I finally could actually use some of all the math I studied!5 -
Reasons to NOT be a dev sounds rather negative so I'd like to propose 3 things that you need to BE a dev as to frame it in a positive light:
- When a problem peaks your interest you want to solve it, you may even be obsessed by it.
- You enjoy learning, not necessarily enjoy school, just enjoy learning new things (even better if it's by your own means)
- Failure may get you down, but you learn and don't give up until you have exhausted all paths to success.
You may need other skills like math, logic and reasoning abilities, being able to handle deadlines, attention to detail, and cope with stress. I've seen people being crap at all of those and if they have the former 3 they, in time, will hone the others enough to make them a productive dev.
No need to be a 9-9-6 code monkey willing to be squeezed by Big Corp for massive profits and a low salary or a 1337 purist coder that only focuses on the crafting side of developing software. That may make you a great coder but not a well rounded developer or individual. Remember, you program machines but you are NOT one.10 -
can we just get rid of floating points? or at least make it quite clear that they are almost certainly not to be used.
yes, they have some interesting properties that make them good for special tasks like raytracing and very special forms of math. but for most stuff, storing as much smaller increments and dividing at the end (ie. don't store money as 23.45. store as 2,345. the math is the same. implement display logic when showing it.) works for almost all tasks.
floating point math is broken! and most people who really, truely actually need it can explain why, which bits do what, and how to avoid rounding errors or why they are not significant to their task.
or better yet can we design a standard complex number system to handle repeating divisions and then it won't be an issue?
footnote: (I may not be perfectly accurate here. please correct if you know more)
much like 1/3 (0.3333333...) in base 10 repeats forever, that happens with 0.1 in base 2 because of how floats store things.
this, among other reasons, is why 0.1+0.2 returns 0.300000046 -
IT teach giving a speech that our MS excel exams are shit and we have no logic and that we suck at math. I mean, yeah it's true that I suck at math and I've never used excel before coz I never had to but ffs I code during nights and I love it, also there are so many fields, saying that you'll be just a part-time waiter... If you have the attitude to solve a problem that you care enough about you'll get there eventually. Sucking at something doesn't mean you suck at everything, everyone has their strengths and weaknesses.5
-
!story
I finally joined uni. With all of its fucking bureaucracy. But I love the feel I get being there with people I know wants same stuff as mine. I picked Math.
It's equally ambitious and crazy as 1) My previous school didn't prepare me at all, (not even limits for fuck's sake) 2) it has given me an antidepressant boost, but I'm also a person that yes goes on anyway but at the first difficulty I second guess my own ability in first place to overcome what's ahead (so, depressive rebound). 3) I have dyscalculia and adhd. Lucky me, not the kind of dyscalculia that makes you unable to grasp logic, it's more like I can't do calculations in my head and 8x7 is HARDER to me than explain graph theory or some stuff about riemannian geometry.
What did you all feel when you went to university? Because I'm feeling a lot ignorant, but worse, stupid, very stupid.
Any advice?2 -
Tomorrow i have school starting.
Which inspires me to rant about how school fails. Ill omit the "arguments" - feel free to append arguments for my words in the comments. Lol
Dont get be wrong. I LOVE acquiring knowledge. And this is where my first point starts : PACE. My class is basically an assortiment of dumbfucks who dont understand anything without "learning by heart over the course of several weeks"
Ill give you a concrete example.
Our maths teacher wanted to make us think scientifically. So he invented a new type of numbers "root 6 numbers" that are formed like so:
a + b * sqrt(6)
Now he wants us to find out wether the sum of two root 6 numbers is also a root six number. this is all dandy, BUT CLASSMATES STILL DIDNT GET WHAT ROOT 6 NUMBERS ARE, EVEN AFTER SEVERAL EXPRANATIONS. Worse: they went to the main teacher to blacken the math teacher.
Another example would be the time our class needed to understand functions(x) : 4 weeks. Ik, as a programmer i have some ease, but four weeks is a bit too much.
Because of this slow pace, i am irreversibly bored of and in school.
And this leads to another problem: homework. Since i know most of the stuff (the few things i dont get at school, i research at home) the homework are useless to me and since the others dont get much, the homeworks are often more than abundant {in a negative way}.
So i dont do them - but that makes teachers disregard me. Which im sickened of.
Worse: often i dont get overly good grades (i honestly have no clue why. I know everything and go over most of the stuff with my menthor),which empowers teacher of the argument of "you are not good enuff, so you cant read in class".
It would be JUST FINE if the only problem were teachers - but my peers are horrible too.
I know our brains are growing, but thats no reason for being stupid.
I literally get told that i need to stop wearing shorts because they look horrible.
Yep. Also, most people think they are empowered of teaching me and talking about my defaillance - because they do their homework. Even though they know i know stuff better than them.
Now to one of the worst issues: a group work where we had to de a Radio report. The guy (the one who thinks he is intelligent BECAUSE he has good grades) invited himself and his gf to me, he wanted me to translate 22 pages from german to english (because he was too lazy to write in german), wanted me to do audiorecording, audioediting and writing of a report. When i left the group because i was called "weakest link" he spread the word that i he had done everythinh and that because i left his group had failed (noticed the flow in logic?)
NOW everybody thinks of me as stupid weirdo. And honestly - i think i will stop listening to them. Ive always hated people, i dont need a significant other.
Even though this will come with the secondary effect of me being gossiped at.
But honestly its fine.
You might have noticed my elojquent way of expressing myseld. I did that in order to show that i am, despite my grades, overly proficient in english
Ok. So now comes the conclusion. What should i do? Do you Think that i am like that because im pubescent myself? How can i stop having nightmares of every possible social situotion that could occur?
Does this have to do with me being a dev?
Well. ありがとう for reading.18 -
It’s so unbelievable how dumb some people are - I’m on the side of adding logic to primary school programs before they start math.2
-
!rant
I'm astounded. I just took a crack at some PHP logic that would be easy for a lot of you but hard for my math-and-logic-challenged brain.
It worked.
The first time. -
1. Find a function: getDayDiff(d1, d2)
2. d1 and d2 are momentjs dates.
3. See that function performs complex ancient math rituals and then returns an integer
4. Try to rewrite function, return d2.diff(d1, 'days')
5. Should be OK right? Run tests
6. Whole module melts down. WTF?!
Turns out the math performed returned the difference + 1 because it included the current day which moment's diff() function does not (out of the box).
Processes that depended on this function then uses the result like this:
const diff = getDayDiff(d1, d2)
if (diff-1 == should_match) { /* more fun logic */ }
$ git checkout .
$ run-shutdown-script-because-fuck-you2 -
Writing ! instead of ~ to make a true logic statement negative in Math exam.
Like: ~p=>q —–> !p=>q1 -
Gonna teach someone conpletely new to programming some C#. What are some good exercises I can give them to understand general programming well?
So far I'm thinking FizzBuzz, some progressively more complex math+logic stuff and maybe fibonacci using recursion.11 -
I think professors should relate computational processes to mathematical ones more often. This helped me out at the beginning a lot when learning CS through the internet during high school.
I remember that a lot of the computational logic made sense to me because of math.
e.g. functions, comparators, variables, for, and, xor, sets, trees, sorting, searching etc.
A lot of these topics are hard to teach for beginning computer scientists. But I think if professors made the relationship with math from the beginning it would be easier for the students
I dont know if teachers already do this but the first time I had a professor relate math to code was while taking data structures in my second year of college1 -
Applied Discrete Math is fucking hard. Logic and proofs are freaking hard. Even Multivariable calculus is piece of cake. Give me Calculus, Linear Algebra and I can get a high grade.
How do you even start to wrote proofs?
I’m in Chapter 2 and struggling. Imagine the later chapters.6 -
First and foremost, students should be carefully taught the logic and mentality behind programming. Most of the time I see that the introductory programming courses waste so much energy in teaching the language itself. So students kinda just get fucked cause many people end up ending the course without having actually gained the "programming perspective".
Stop teaching pointers and lambdas and even leave the object oriented stiff till later. If a student doesn't know why we use a For loop then how can they learn anything else.
I believe once that thing in your brain clicks about programming, everything goes smooth from there... kinda :P
Second of all, and this pertains mainly to the engineering and science disciplines.
We need a fundamental and strong mathematical foundation. And no I don't mean taking fucking double integrals. Teach us Linear Algebra, Graph theory, the properties of matrices, and Probability theory.
One of the things I suffered from most and regret in university is having a weak foundation in math and having to spend more time catching myself up to speed.
It's so annoying reading a paper on a new algorithm or method and feeling like an idiot because I can't understand what magic these people did.
Numerical Methods...
Ok this is more deeper, maybe a 2nd year course.
But this is something we take for granted.
Computers don't magically add and subtract and multiply.
They fuck up.
And it'll bite you in the ass if you're not even aware that the computer we all love so much isn't as perfect as we think
Some hardware knowledge.
Probably a basic embedded systems course with arduinos
just so you can get a feel for how our beautiful software actually makes those electrons go weeeeeeeee
And finally
Practice practice
Projects projects
like honestly
just give me the internet and some projects
Ill learn everything else
Projects are the best motivation
I hate this purely theoretical approach
where we memorize or read code and write these stupid exams
Test what we are capable off
make us do projects that take sleepless nights and litres of coffee
And judge our methods, documentation, team work, and output
Team work skills and tools (VCS, communicating, project management, etc.)
Documentation and Reporting
Properly
:)
maybe even with LaTeX :D
Yeah that's the gist of whats on my mind at the moment regarding an ideal computer science education
At least the foundations
The rest I leave it to the next dude. -
I guess the moment I wanted to become a dev was when I was playing Skyrim and just got curious on what the underlying mechanics of the game looked like (and obviously how they worked). That lead to me embracing math (CS is derived from math and they both exercise logic flow and abstraction) and realized how good it felt solving problems. I get the same euphoric feeling from solving problems in mathematics as I do when I solve problems through code. I can say that I will be happy and have meaning developing software for the rest of my life, but I wouldn't lie and say that'll be my only focus. Along the way I'll definitely pursue other interest, but from my standing and mindset now I'll definitely be
developing things as more than just a hobby in the near future. -
- Stop procrastinate;
- Start a open-source project;
- Go deep in math and logic;
- Perfect my English;
- Learn some soft skills;
- Get a hobby outside dev;
- Get some exercises;
- Master Javascript and CSS.
It's all I can think of now, but I have so much more goals for this year that I will be very busy, and in the end of the day it will all come together.2 -
I love the logic that underlies algorithm. But nowadays I fear that this is almost disappeared, now programming a software is 5% logic and 95% read system specificactions, documentation, implement third part solutions, think about who developed the system thought it had to be and rant because you don't understand it. I like to solve math problems using algorithms rather than deal with user interactivity, for example. Yes, all this is pointless, but sometimes I miss the exercises that I did at school or in "IT Olympiad"
-
Recently I completed a whole year in programming. Holy jebus, I have no idea I could make it through.
I started thinking I was "decent" at this because I had taken a half dozen courses in python plus some algorithm logic in school lol @ innocent me
I'm an applied math student and I hereby declare I was the most incompetent dude you'll ever see.
I've been through so much shit I didn't realize I had a shitty boss, because one would think it's normal for a beginner to approach everything in programming because I was told to do so. Full blown restful apis, stateful redux react apps with responsive CSS using Google's material design. Don't forget to dockerize everything and deploy the swarm on Amazon cloud all the while having to run integration unit tests, make sure all the rules on your nginx are correct we don't want exposure do you know how to write a visualization tool on JavaScript so we can 3d-fy some x-ray prints and good luck balancing tight schedules with your school and girlfriend ye right lul
My manager would ask me to deliver new shit to an app I was developing mostly by my self in react (I barely even knew what RFC or ES6 was by the time I started).
I got fired from this project because I couldn't deliver by myself what 5 experienced dudes could (debatable, but still... Cuz they couldn't when they took over. Boss wanted to rewrite the whole app in a week and a half)
Turns out I got called back by the same company but to contribute in another project. This time to automate some shizzle with python.
Feelsgoodman but I want out ASAP can't stay sane for longer -
Keep coding and making mistakes. Further more reading code and books. Often the books are related to other topics (math, logic, psychology, economics, ....) to keep my brain alive and get other insights of ways how to think or solve a problem.
-
In reply to this:
https://devrant.com/rants/260590/...
As a senior dev for over 13 years, I will break you point by point in the most realistic way, so you don't get in troubles for following internet boring paternal advices.
1) False. Being go-ahead, pro active and prone to learn is a good thing in most places.
This doesn't mean being an entitled asshole, but standing for yourself (don't get put down and used to do shit for others, or it will become the routine) and show good learning and exploration skills will definitely put you under a good light.
2)False. 2 things to check:
a) if the guy over you is an entitled asshole who thinkg you're going to steal his job and will try to sabotage you or not answer acting annoyed, or if it's a cool guy.
Choose wisely your questions and put them all togheter. Don't be that guy that fires questions in crumbles, one every 2 minutes.
Put them togheter and try to work out the obvious and what can be done through google or chatgpt by yourself. Then collect the hard ones for the experienced guy and ask them all at once. He's been put over you to help you.
3) Idiotic. NO.
Working code = good code. It's always been like this.
If you follow this idiotic advice you will annoy everyone.
The thing about renaming variables and crap it's called a standard. Most company will have a document with one if there is a need to follow it.
What remains are common programming conventions that everyone mostly follows.
Else you'll end up getting crazy at all the rules and small conventions and will start to do messy hot spaghetti code filled with syntactic sugar that no one likes, included yourself.
4)LMAO.
This mostly never happens (seniors send to juniors) in real life.
But it happens on the other side (junior code gets reviewed).
He must either be a crap programmer or stopped learning years ago(?)
5) This is absolutely true.
Programming is not a forgiving job if you're not honest.
Covering up mess in programming is mostly impossible, expecially when git and all that stuff with your name on it came out.
Be honest, admit your faults, ask if not sure.
Code is code, if it's wrong it won't work magically and sooner or later it will fire back.
6)Somewhat true, but it all depends on the deadline you're given and the complexity of the logic to be implemented.
If very complex you have to divide an conquer (usually)
7)LMAO, this one might be true for multi billionaire companies with thousand of employees.
Normal companies rarely do that because it's a waste of time. They pass knowledge by word or with concise documentation that later gets explained by seniors or TL's to the devs.
Try following this and as a junior:
1) you will have written shit docs and wasted time
2) you will come up to the devs at the deadline with half of the code done and them saying wtf who told you to do that
8) See? What an oxymoron ahahah
Look at point 3 of this guy than re-read this.
This alone should prove you that I'm right for everything else.
9) Half true.
Watch your ass. You need to understand what you're going to put yourself into.
If it's some unknown deep sea shit, with no documentations whatsoever you will end up with a sore ass and pulling your hair finding crumbles of code that make that unknown thing work.
Believe me and not him.
I have been there. To say one, I've been doing some high level project for using powerful RFID reading antennas for doing large warehouse inventory with high speed (instead of counting manually or scanning pieces, the put rfid tags inside the boxes and pass a scanner between shelves, reading all the inventory).
I had to deal with all the RFID protocol, the math behind radio waves (yes, knowing it will let you configure them more efficently and avoid conflicts), know a whole new SDK from them I've never used again (useless knowledge = time wasted and no resume worthy material for your next job) and so on.
It was a grueling, hair pulling, horrible experience that brought me nothing in return execpt the skill of accepting and embracing the pain of such experiences.
And I can go on with other stories. Horror Stories.
If it's something that is doable but it's complex, hard or just interesting, go for it. Expecially if the tech involved is something marketable.
10) Yes, and you can't stop learning, expecially now that AI will start to cover more and more of our work.4