Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "language choice"
To all new devs:
- Your language of choice is fine.
- There is no superior way to indent, yours is fine.
- Your IDE is fine.
- Your OS is fine.
Unless you work in my team, of course.18
// repost \\
To all new devs:
• Your language of choice is fine.
• There is no superior way to indent, yours is fine.
• Your IDE is fine.
• Your OS is fine.
Unless you work in my team, of course.18
I tutor people who want to program, I don't ask anything for it, money wise, if they use my house as a learning space I may ask them to bring cookies or a pizza or something but on the whole I do it to help others learn who want to.
Now this in of itself is perfectly fine, I don't get financially screwed over or anything, but...
Fuck me if some students are horrendous!
To the best of my knowledge I've agreed to work with and help seven individuals, four female three male.
One male student never once began the study work and just repeatedly offered excuses and wanted to talk to me about how he'd screwed his life up. I mean that's unfortunate, but I'm not a people person, I don't really feel emotionally engaged with a relative stranger who quite openly admits they got addicted to porn and wasted two years furiously masturbating. Which is WAY more than I needed to know and made me more than a little uncomfortable. Ultimately lack of actually even starting the basic exercises I blocked him and stopped wasting my time.
The second dude I spoke to for exactly 48 hours before he wanted to smash my face in. Now, he was Indian (the geographical India not native American) and this is important, because he was a friend of a friend and I agreed to tutor however he was more interested in telling me how the Brits owed India reparations, which, being Scottish, I felt if anyone was owed reparations first, it's us, which he didn't take kindly too (something about the phrase "we've been fucked, longer and harder than you ever were and we don't demand reparations" didn't endear me any).
But again likewise, he wanted to talk about politics and proving he was a someone "I've been threatened in very real world ways, by some really bad people" didn't impress me, and I demonstrated my disinterest with "and I was set on fire once cos the college kids didn't like me".
He wouldn't practice, was constantly interested in bigging himself up, he was aggressive, confrontational and condescending, so I told him he was a dick, I wasn't interested in helping him and he can help himself. Last I heard he wasn't in the country anymore.
The third guy... Absolute waste of time... We were in the same computer science college class, I went to university and did more, he dossed around and a few years later went into design and found he wanted to program and got in touch. He completes the code schools courses and understandably doesn't quite know what to do next, so he asks a few questions and declares he wants to learn full stack web development. Quickly. I say it isn't easy especially if it's your first real project but if one is determined, it isn't impossible.
About six months of sporadic development where I send him exercises and quizzes to try, more often than not he'd answer with "I don't know" after me repeatedly saying "if you don't know, type the program out and study what it does then try to see why!".
The excuses became predicable, couldn't study, playing soccer, couldn't study watching bake off, couldn't study, couldn't study.
Eventually he buys a book on the mean stack and I agree to go through it chapter by chapter with him, and on one particular chapter where I'm trying to help him, he keeps interrupting with "so could I apply for this job?" "What about this job?" And it's getting frustrating cos I'm trying to hold my code and his in my head and come up with a real world analogy to explain a concept and he finally interrupts with "would your company take me on?"
"Do you want the honest unabridged truth?"
"Yes, I'd really like to know what I need to do!"
The next day I got a text "I was thinking about what you said and... I think I'm not going to bother with this full stack stuff it's just too hard, thought you should know."22
I wrote a Student Information system for my midterm project back in 94 written in Clipper and runs on MS-DOS.
I demoed & explained to the panel of professors how it tracks enrollments, payments, class schedules, grades and attendance of each and every student. Has user authentication, auditing and reporting functionalities.
It has a lite version also written in Clipper that can be installed on a Professor's laptop so that he/she can update records even at home, and would be able to sync with the db at school via a BBS. Telix for DOS (self-taught) was my choice for the BBS as it was shareware, has built-in Zmodem support and comes with it's own programming language called SALT (Script Application Language for Telix) that can be used for automating tasks. The lite version of my project would dump the updates on an ASCII file, compress the file using PKZIP, use the laptop's modem to dial-up the number to the school's BBS and send the file across using Zmodem protocol.
The main version would then download the file(s) from the BBS and proceed to do a sync.
After the doing the demo and answering all their questions the panel asked me to wait outside the room, called me back in after 15mins and told me that I don't have to attend that class for the remainder of the term. The happiness as the my classmates outside of the room gawked at me felt like King Midas himself gave my balls his golden touch.
Then in 97, 2yrs after I graduated, I accompanied my cousins to a different campus of the same school for their enrollment and right there on the bottom of the screen were my initials on a very very familiar UI! They actually used, and were still using, my school project. Needless to say my cousins didn't believe that it was written by me.15
Anyone looking for something interesting to do???
Step 1) understand how basic circuitry works on a bread board nothing too fancy. ( Implement NAND, AND, ADDER, SUBTRACTOR)
Step 2) learn about microprocessors and how OS works
Step 3) learn assembly
Step 4)write a basic assembler and understand how loaders and linkers works !
Step 5) write a kernel with very basic features like memory management and process management and some drivers for IO
Step 5) write an emulator for some simple systems .! ex chip-8.
Step 6) read about compiler theory and automata
Step 7) write a basic Python interpreter that compiles (not interpreter) to native assembly.
Step 8) implement TCP stack .
Step 9) learn as much as u can about complexity measurement ), data structures and algorithms using C or C++ it's very important ( familiarity with pointers and thus computer memory )
Step 10) learn any high level language of choice like Python or Ruby.
Step 11) stop debating over tabs vs spaces , emacs vs vim , angular vs vue, php vs Python , OOps vs procedular vs functional ( just know about all of them and when to use but don't fucking debate over which one is superior )..
Step 12) live happily and be healthy.30
Things I wish I could tell my 18 year old self.
1) Accept you will make mistakes.
2) Truly learn the language you are using.
3) Write idiomatic code for the language you are using.
4) Be upfront about not knowing something.
5) Don't let not knowing something stop you from learning it.
6) None of us knew X until we learned it.
7) Understand your strengths and weaknesses as a developer, play to them.
8) Be willing to try new things.
9) X language isn't ALWAYS the best choice, X paradigm isn't ALWAYS the best choice. Choose wisely.
10) You won't know everything, but you might know more than others.
11) Your ideas and ego don't matter more than ensuring the product works.
12) "Perfection is the enemy of the good [enough]" - Voltaire
13) "Perfection is not achieved when there's nothing more to add, but when there's nothing more to remove." - Einstein.
14) Conflicts happen, deal with it.
15) Develop a toolset and really learn them.
16) Try new tools, they may prove better than what you were using.
17) Don't manage your own memory unless you absolutely have to, you are probably not smarter than the collective intelligence of the team that built the various garbage collection methods.
18) People can be dicks, especially online.
19) If you are new and people are being dicks to you, did you skip past the irc message about etiquette? If you did, you're the dick in this situation.
20) It can be tough, but it is fun, so have fun!6
why are we having a flame war on best programming language! it is personal choice and everything has its own purpose and importance. as a dev we should respect that14
I'm 20, and I consider myself to be as junior as they come. I only started programming seriously in June 2016,and since then, I've been doing mainly Android Work, and making my own servers and backends(using AWS/Firebase nd stuff).
For the first time in life, I was approached by a recruiter for a company on linkedIn. They "stumbled upon" my Github profile and wanted to see if I was interested in an internship opportunity. This company is an early stage start up, by that I mean a dude with an idea calling himself the CEO and a guy who "runs a tech blog" and only knows college level C programming (explaination follows).
So they want me to make the app for their startup. and for that, I ws first asked to solve a couple problems to prove my competence and a "technical interview" followed.
They gave me 3 questions, all textbook, GCD of 2 numbers, binary search and Adding an element to the linked List, code to be written on a piece of paper. As the position was that of an Android Developer, I assumed that Java should be the language of choice. Assumed because when I asked, the 'tech blogger' said, yeah whatever.
But wait, that ain't all, as soon as I was done, Mr. Blogger threw a fit, saying I shouldn't assume and that I must write it in C. I kept my cool (I'm not the most patient person), and wrote the whole thing in C.
He read it, and asked me what I've written and then told me how wrong I was to write 2 extra lines instead of recursion for GCD. I explained that with numbers large enough, we run the risk of getting a stackoverflow and it's best to apply non recursive solution if possible. He just heard stackoverflow and accused me of cheating. I should have left right then, but I don't know why, I apologized and again, in detail explained what was happening to this fucktard. Once this was done, He asked me how, if I had to, I'd use this exact code in my Android App. I told him that Id rather write this in Java/Kotlin since those are the languages native to Android apps. I also said that I'd export these as a Library and use JNI for the task. (I don't actually know how, I figured I can study if I have to).
Here's his reply, "WTF! We don't want to make the app in Java, we will use C (Yeh, not C++, C). and Don't use these fancy TOOLS like JNI or Kotlin in front of me, make a proper application."
By this I was clear that this guy is not fit to be technical lead and that I should leave. I said, "Sir, I don't know how, if even possible, can we make an Android App purely in C. I am sorry, but this job is not for me".
I got up and was about to leave the room, when we said, "Yeah okay, I was just testing you".
Yeah right, the guy's face looked like a howling monkey when I said Library for C, and It has been easier for me to explain code to my 10 year old cousin that this dumbfuck.
He then proceeded to ask me about my availability, and I said that I can at max to 15-20 hours a week since my college schedule is pretty tight. I asked me to get him a prototype in 2 months and also offered me a full time job after I graduate. (That'd be 2 years from now). I said thank you for the offer, but I am still not sure of I am the right person for this job.
He then said, "Oh you will be when I tell you your monthly stipend."
I stopped for a second, because, money.
And then he proceeded to say 2 words which made me walk out without saying a single word.
I live in India, 1000 INR translates to roughly $15. I made 25 times that by doing nothing more than add a web view to an activity and render a company's responsive website in it so it looks like an app.
If this wasn't enough, the recruiter later had the audacity to blame me for it and tell me how lucky I am to even get an offer "so good".
Fuck inexperienced assholes trying shit they don't understand and thinking that the other guy is shitsworth.10
(c) Creative Tim. Worth to read pips!
How to land a programming job
1. ABC (Always Be Coding) - The more you code, the better you'll get.
2. Master at least one multi-paradigm language - Some good candidates are C#, C++, Java, PHP, Python, and Ruby.
3. Re-invent the wheel - You should implement the most common data structures in your language choice.
4. Solve word problems - Pick those that test your ability to implement recursive, pattern-matching, greedy, dynamic programming, and graph problems
5. Make coding easy - At least, make it look easy.
6. Be passionate - If you don't care, then nobody else will.
7. Don't make assumptions - Ask questions if you're not sure.11
( rant || !rant ) && idiots
console.info( this.isLongRant );
console.warn( "contains strong language and wordpress" );
A friend of mine sent two of his "friends" to me because they wanted me to build a website for their new business (~idea).
So I had a meeting with them.
First of all they wanted me to have a look on the current (work in progress) site.
First impression of the frontend:
Well, imagine this:
- a 90s/2k background (dotted/pixelated cloud in baby-blueish as backgroud with repeat)
- the logo was made by the sister of one of the guys, it wasn't too bad, but badly aligned, asymmetrical
- some obvious $offTheShelfShopPlugin with $randomStockContent
- the fucking slider had a small loading bar to indicate changes, it appears like an hyperanxious child on ADHS
- below the logo TWO FUCKING GIF SPINNERS to indicate nothing else but how fucking brain amputated these two dudes are, including the dev who is responsible for adding this. (to this point, they only told me, that a webagency did the setup and some basic work on the site, more on that later)
- no styling concept at all, random fonts and stuff everywhere including default styles of the shop plugin.
- FUUUUUCK WTF wil come furtherin this meeting?
After seeing a pile of binary puke fisted out of a 60yo nonstop-intern who changed his jobtitle from dildo-traveling-salesman to fullstack-frontend-dev by wrinting it on a post-it-note, I imagined, there has to be something wrong with the backend as well.
Boy was I right!
Yes, you guessed it! A random Wordpress adminpanel login appeared! OH NO....
I really wanted to levae this meeting immediately.
I was not able to hold my disgust back and I told them right in their face, what a shit pile of nutty squirrel turds this current page is. And that Wordpress is not the right choice at all for a shop.
Then came the best part: They basically told me, that they terminated the previous contract with the webagency because they were too expensive (they are cheap, compared to others, I know people who know their prices) and that they wanted to create A BIG MARKETPKACE with multiple ressellers who can have their shop in their website. Something similar to FUCKING AMAZON. ON FUCKING WORDPRESS!?!?!?
They even asked me if I wanted to be their partner & developer and that they can't pay much at the moment until the marketplace starts to grow.
I more or less told them to go fuck themselves with a rusty pitchfork.2
Can we all grow up and acknowledge that every programming language has its benefits and drawbacks? You don't sound edgy and sophisticated by only advocating for your language of choice, you twat.18
VBA is not the language of choice for many of you. But in a big non-software company, Excel is tool numero uno, and VBA saves so much time. Almost nobody bothers to learn it, which drives me nuts already, but those who learn it, suck.
Wrote a beautiful VBA script with SQL inside to fill in excelsheets automatically.
Why the living fucks would someone go in the code and alter it? Why do you ignorant idiot with almost no excel and vba knowledge alter the range of the for loop and delete a few lines.
After that completely knocked out the file, I got a call for help. "¡Your code broke!"
These useless morons.17
school takes the creativity out of programming.
you want to try something new?
sorry, can't have that. functionality = priority.
school takes the choice out of programming.
- you're gonna use x language
- with x api
- in x environment
- and make it in x way
- because if you don't, your gonna fail x assignments
- because programming is about getting the job done, with no creativity
yeah fuck you too
school takes the cleverness out of programming
you get a turn left function. it turns a 'turtle' left any amount of degrees that you pass it, you have to make a turn right function to turn right 90 degrees. well, if you thought turning left -90 degrees was a good idea to make a turn right function, then fuck you. you have to turn left three timeswith the default 90 degrees instead because it's more practical/logical.
anyone else hate the movements to get programming into schools?14
Let the student use their own laptops. Even buy them one instead of having computers on site that no one uses for coding but only for some multiple choice tests and to browse Facebook.
Teach them 10 finger typing. (Don't be too strict and allow for personal preferences.)
Teach them text navigation and editing shortcuts. They should be able to scroll per page, jump to the beginning or end of the line or jump word by word. (I am not talking vi bindings or emacs magic.) And no, key repeat is an antifeature.
Teach them VCS before their first group assignment. Let's be honest, VCS means git nowadays. Yet teach them git != GitHub.
Teach git through the command line. They are allowed to use a gui once they aren't afraid to resolve a merge conflict or to rebase their feature branch against master. Just committing and pushing is not enough.
Teach them test-driven development ASAP. You can even give them assignments with a codebase of failing tests and their job is to make them pass in the beginning. Later require them to write tests themselves.
Don't teach the language, teach concepts. (No, if else and for loops aren't concepts you god-damn amateur! That's just syntax!)
When teaching object oriented programming, I'd smack you if do inane examples with vehicles, cars, bikes and a Mercedes Benz. Or animal, cat and dog for that matter. (I came from a self-taught imperative background. Those examples obfuscate more than they help.) Also, inheritance is overrated in oop teachings.
Functional programming concepts should be taught earlier as its concepts of avoiding side effects and pure functions can benefit even oop code bases. (Also great way to introduce testing, as pure functions take certain inputs and produce one output.)
Focus on one language in the beginning, it need not be Java, but don't confuse students with Java, Python and Ruby in their first year. (Bonus point if the language supports both oop and functional programming.)
Use industry standards. Notepad, atom and eclipse might be open source and free; yet JetBrains community editions still best them.
For grades, don't your dare demand for them to write code on paper. (Pseudocode is fine.)
Don't let your students play compiler in their heads. It's not their job to know exactly what exception will be thrown by your contrived example. That's the compilers job to complain about. Rather teach them how to find solutions to these errors.
Teach them advanced google searches.
Teach them how to write a issue for a library on GitHub and similar sites.
Teach them how to ask a good stackoverflow question :>6
Once, at school, last year, we had to present a C# project that, upon clicking a button, took words from a .txt file and showed them in an alphabetical listBox...
Since the file they gave us was so long that we had to wait a minute or so to get the listBox full, I implemented a progressBar which popped up on the button, and upon clicking it, the progressBar advanced for every word it loaded, until, upon finishing, it would have disappear leaving again the button, and the listBox would have been loaded.
Apparently, this choice alone – even if it had next to nothing to do with the exercise – was enough to give me a solid 9 out of 10, because our professors never explained us about progressBars and I used that completely on my own... I tend to do things like this in class, where I explore what my tools could give me.
So long story short, I ended up having the best vote in class for that, and I was so happy and motivated :D
Moral of the story: if you can, always try to learn something new about your tools and your programming language, on your own, because apparently it gives you advantage towards others, at least in school. Or even if you're not in school, it could still be something cool to learn that might be helpful in the future, for your projects or your job's projects.
The more you know, the better!10
About 18 months ago my non-technical Manager of Applications Development asked me to do the technical interviews for a .NET web developer position that needed to be filled. Because I don't believe in white board interviewing (that's another rant), but I do need to see if the prospective dev can actually code, for the initial interview I prepare a couple of coding problems on paper and ask that they solve them using any language or pseudo code they want. I tell them that after they're done we'll discuss their thought process. While they work the other interviewing dev and I silently do our own stuff.
About half way through the first round of technical interviews the aforementioned manager insisted we interview a dev from his previous company. This guy was top notch. Excellent. Will fit right in.
The manager's applicant comes in to interview and after some initial questions about his resume and experience I give him the first programming problem: a straightforward fizzbuzz (http://wiki.c2.com/?FizzBuzzTest). He looked as if the gamesters of Triskelion had dropped him into the arena. He demurs. Comments on the unexpectedness of the request. Explains that he has a little book he usually refers to to help him with such problems (can't make this stuff up). I again offer that he could use any language or pseudo code. We just want to see how he thinks. He decides he will do the fizzbuzz problem in SQL. My co-interviewer and I are surprised at this choice, but recover quickly and tell him to go ahead. Twenty minutes later he hands me a blank piece of paper. Of the 18 or so candidates we interview, he is the only one who cannot write a single line of code or pseudo code.
I receive an email from this applicant a couple of weeks after his interview. He has given the fizzbuzz problem some more thought. He writes that it occurs to him that the code could be placed into a function. That is the culmination of his cogitation over two weeks. We shake our heads and shortly thereafter attend the scheduled meeting to discuss the applicants.
At the meeting the manager asks about his former co-worker. I inartfully, though accurately, tell him that his candidate does not know how to code. He calls me irrational. After the requisite shocked silence of five people not knowing how to respond to this outburst we all sing Kumbaya and elect to hire someone else.
Interviews are fraught for both sides of the table. I use Fizzbuzz because if the applicant knows how to code it's an early win in the process and we all need that. And if the applicant can't solve it, cut bait and go home.
Fizzbuzz. Best. Interview. Question. Ever.6
I appreciate other models of other languages.
I do not include 3rd party NPM modules without checking their source and credibility.
I will not use a framework (i.e. react, Vue, Anguler) if it's not needed.
I can do any software engineering tasks a software engineer is supposed to do.
EEEEEEEEEEEE Some fAcking languages!! Actually barfs while using this trashdump!
The gist: new job, position required adv C# knowledge (like f yea, one of my fav languages), we are working with RPA (using software robots to automate stuff), and we are using some new robot still in beta phase, but robot has its own prog lang.
- this language is kind of like ASM (i think so, I'm venting here, it's ASM OK), with syntax that burns your eyes
- no function return values, but I can live with that, at least they have some sort of functions
- emojies for identifiers (like php's $var, but they only aim for shitty features so you use a heart.. ♥var)
- only jump and jumpif for control flow
- no foopin variable scopes at all (if you run multiple scripts at the same time they even share variables *pukes*)
- weird alt characters everywhere. define strings with regular quotes? nah let's be [some mental illness] and use prime quotes (‴ U+2034), and like ⟦ ⟧ for array indexing, but only sometimes!
- super slow interpreter, ex a regular loop to count to 10 (using jumps because yea no actual loops) takes more than 20 seconds to execute, approx 700ms to run 1 code row.
- it supports c# snippets (defined with these stupid characters: ⊂ ⊃) and I guess that's the only c# I get to write with this job :^}
- on top of that, outdated documentation, because yea it's beta, but so crappin tedious with this trail n error to check how every feature works
The question: why in the living fartfaces yolk would you even make a new language when it's so easy nowadays to embed compilers!?! the robot is apparently made in c#, so it should be no funcking problem at all to add a damn lua compiler or something. having a tcp api would even be easier got dammit!!! And what in the world made our company think this robot was a plausible choice?! Did they do a full fubbing analysis of the different software robots out there and accidentally sorted by ease of use in reverse order?? 'cause that's the only explanation i can imagine
Frillin stupid shitpile of a language!!! AAAAAHHH
see the attached screenshot of production code we've developed at the company for reference.
Disclaimer: I do not stand responsible for any eventual headaches or gauged eyes caused by the named image.
(for those interested, the robot is G1ANT.Robot, https://beta.g1ant.com/)4
sooooooooo for my current graduate class we were to use the MVC pattern to build an IOS application(they preferred it if we did an IOS application) or if you didn't have an Apple computer: an Android application.
The thing is, they specified to use Java, while in their lectures and demos they made a lot of points for other technologies, hybrid technologies, such as React Cordova, all that shit, they even mentioned React Native and more. But not one single mention of Kotlin. Last time I tried my hand at Android development was way before Kotlin, it was actually my first major development job: Mobile development, for which we used Obj C on the IOS part and well, Java on the Android part.
As some of you might now, I rarely have something bad to say about a tech stack(except for VBA which I despise, but I digress) and I love and use Java at work. But the Android API has always seem unnecessarily complex for my taste, because of that, when I was working as a mobile development I dreaded every single minute in which I had to code for Android, Google had a great way to make people despise Java through their Android API. I am not saying it is shit, I am not saying it is bad, I just-dont-like-it.
Kotlin, proves a superior choice in my humble opinion for Android development, and because the language is for retards, it was fairly easy for me to pick it up in about 2 hours. I was already redesigning some of my largest Spring applications using half the code and implemented about 80% of the application's functionality in less than 3 hours(login, fragment manipulation, permissions, bla bla) and by that time I started to wonder if the app built on Kotlin would be ok. And why not? If they specifically mentioned and demonstrated examples using Swift, then surely Kotlin would be fine no? Between Kotlin and Java it is easy to see that kotlin is more similar to Swift than Java. So I sent an email. Their response: "I am sorry, but we would much rather you stick with the official implementations for Android, which in this case is Java for the development of the application"
I was like 0.o wat? So I replied back sending links and documentation where Google touted Kotlin as the new and preferred way to develop Android applications, not as a second class citizen of the platform, but as THE preferred stack. Same response.
Eventually one of the instructors reflected long enough on it to say that it was fine if I developed the application in Kotlin, but they advised me that since they already had grading criteria for the Java program I had to redo it in Java. It did not took me long really, once I was finished with the Kotlin application I basically rewrote only a couple of things into Java.
The end result? I think that for Android I still greatly prefer Kotlin. Even though I am not the biggest fan of Kotlin for anything else, or as my preferred language in the JVM.
I just.......wish....they would have said something along the lines of: "Nah fam please rewrite that shit for Java since we don't have grading criterias in place for Kotlin, sorry bruh, 10/10 gg tho" instead of them getting into an email battle with me concerning Kotlin being or not being the language to use in Android. It made me feel that they effectively had no clue what they were talking about and as such not really capable of taking care of students on a graduate level program.
Made me feel dirty.12
I am a firmware developer with 4 years experience. C and sometimes assembly is my bread and butter.
Like 2 years ago, I was really interested to make a switch to application development. Got referred by my friend to her startup.
But I was a bit rusty with my data structures, high level languages and interpersonal skills.
The first question was to find the number of occurences for each word in a paragraph. The language choice was Java. But I was allowed to use C++ since it was the closest relative to Java that I knew.
And I started implementing a binary search tree from scratch and started inserting each tokenised word into it, wrote a traversal algorithm.
The interviewer, luckily, was a patient guy. After I completed my whole mess, he asked is it possible to do this in a slightly better way with constant time access without traversal.
I said yes, we can with a hash table but I dont know how to implement one. He replied I dont expect you to implement the hash table but see you use it. I asked him if I am allowed to used the standard library, for which he said ofcourse.
Finally I understood his expectation, referred cppreference.com and used an unordered_map.
Later there were some quesion on databases for which I tried my best to answer. And I frankly replied that I am not comfortable with JS frameworks as of now. Got rejected.
So the mistake is I never asked basic questions like what is the time complexity expects, if I was allowed to use standard library, didnt spend some extra time on studying stuffs needed for the domain switch and most importantly I panicked.7
In my uni course "Algorithms and Data structures" we use Java. Fine. Definitely not my preferred language but it's not like I have a choice.
Anyway, our teacher uploads code files for us to use as reference/examples. The problem is, they look like this. Not only does she not indent the code, she also uses a charset that is not utf-8.
In the rare cases where she does indent the code, she uses THREE, yes THREE spaces...28
I want to learn more about this community, it seems like there is a diverse group of devs here, so I wanted to create some polls about for everyone to see below (it would be helpful if you vote!). Here are a few for everyone:
Programming language: http://www.strawpoll.me/14004228
Time on devRant: http://www.strawpoll.me/14004247
IDE of choice: http://www.strawpoll.me/14004260
Topic you find most interesting: http://www.strawpoll.me/14004295
---For specific devs---
Add any polls you want answered, were surprised about, or tag someone10
there's this club at my school, called STEM, and another called "science olympiad." both are pretty cringey, bad, or boring. science olympiad was just for the college credit. during the intro to the club, they said there was a coding section. "game on!" is what they dubbed it as, where basically you're timed to make a game in scratch. i'm fucking tired of it. why is scratch considered programming? don't get me wrong, i'll write an OS in PHP before i say code.org is better than scratch, but fuck it. its a fucking interpreted language that's interpreted by another interpreted language. i don't understand why this shit is still used. scratch isn't good. please codecademy or w3schools or just write in binary directly, but not scratch. my hand hurts from dragging and dropping, my eyes hurt from the light theme, my imaginary cat committed suicide after learning about scratch's mascot. fuck it. now onto stem club, fuck it too. not for being bad (well, kinda), but for not being more recognized. it should be above science olympiad, and other clubs because you actually have to think instead of just memorize. but alas, we still were offered the choice of scratch to program the robot. sigh. arduino much? i guess not. challenging much? nope. was i elected "leader"? with three of my friends out of the eight there, i could have been, but no. effort in this would be depressing.
I was drunk at a party and so was this guy, that I knew from scouting and who knew that I was capable of programming, even tho he very clearly disagreed with my choice in language.
We started talking about this new system that we (all scouts in Denmark) have to use and he told me how his work was affected by the fact that this systems API is the purest of shit.
He told me that he would really like someone to help him with his work, cause right now he was alone. They were looking for someone new, but for some reason the boss wanted a new guy to have 5 years of experience in Java... Which they don't use.
So he got my information and would put in a good word for me
Teaching my homeschooled son about prime numbers, which of course means we need to also teach prime number determination in Python (his coding language of choice), when leads to a discussion of processing power, and a newly rented cloud server over at digital ocean, and a search of prime number search optimizations, questioning if python is the right language, more performance optimizations, crap, the metrics I added are slowing this down, so feature flags to toggle off the metrics, crap, I actually have a real job I need to get back to. Oooh, I'm up to prime numbers in two millions, and , oh, I really should run that ssh session in screen so it keeps running if I close my laptop. I could make this a service and let it run in the background. I bet there's a library for this. He's only 9. We've already talked about encryption and the need to find large prime numbers.3
At work, my closest relation is with the DBA. Dude is a genius when it comes to proper database management as well as having a very high level of understanding concerning server administration, how he got that good at that I have no clue, he just says that he likes to fuck around with servers, Linux in particular although he also knows a lot about Windows servers.
Thing is, the dude used to work as a dev way back when VB pre VB.NET was all the rage and has been generating different small tools for his team of analysts(I used to be a part of his team) to use with only him maintaining them. He mentioned how he did not like how Microsoft just said fk u to VB6 developers, but that he was happy as long as he could use VB. He relearned how to do most of the GUI stuff he was used to do with VB6 into VB.NEt and all was good with the world. I have seen his code, proper OOP practices and architectural decisions, etc etc. Nothing to complain about his code, seems easy enough to extend, properly documented as well.
Then he got with me in order to figure out how to breach the gap between building GUI applications into web form, so that we could just host those apps in one of our servers and his users go from there, boy was he not prepared to see the amount of fuckery that we do in the web development world. Last time my dude touched web development there was still Classic ASP with JScript and VBScript(we actually had the same employer at one point in the past in which I had to deal with said technology, not bad, but definitely not something I recommend for the current state of web development) and decided that the closest thing to what he was used was either PHP(which he did not enjoy, no problem with that really, he just didn't click with the language) and WebForms using VB.NET, which he also did not like on account of them basically being on support mode since Microsoft is really pushing for people to adopt dotnet core.
After came ASP.NET with MVC, now, he did like it, but still had that lil bug in his head that told him that sticking to core was probably a better idea since he was just starting, why not start with the newest and greatest? Then in hit(both of us actually) that to this day Microsoft still not has command line templates for building web applications in .net core using VB.NET. I thought it was weird, so I decided to look into. Turns out, that without using Razor, you can actually build Web APIs with VB.NET just fine if you just convert a C# template into VB.NET, the process was...err....tricky, and not something we would want to do for other projects, with that in we decided to look into Microsoft's reasons to not have VB.NET. We discovered how Microsoft is not keeping the same language features between both languages, having crown C# as the language of choice for everything Microsoft, to this point, it seems that Microsoft was much more focused in developing features for the excellent F# way more than it ever had for VB.NET at this point and that it was not a major strategy for them to adapt most of the .net core functionality inside of VB, we found articles when the very same Microsoft team stated of how they will be slowly adding the required support for VB and that on version 5 we would definitely have proper support for VB.NET ALTHOUGH they will not be adding any new development into the language.
Past experience with Microsoft seems to point at them getting more and more ready to completely drop the language, it does not matter how many people use it, they would still kill it :P I personally would rather keep it, or open source the language's features so that people can keep adding support to it(if they can of course) because of its historical significance rather than them just completely dropping the language. I prefer using C#, and most of my .net core applications use C#, its very similar to Java on a lot of things(although very much different in others) and I am fine with it being the main language. I just think that it sucks to leave such a large developer pool in the shadows with their preferred tool of choice and force them to use something else just like that.
My boy is currently looking at how I developed a sample api with validation, user management, mediatR and a custom project structure as well as a client side application using React and typescript swappable with another one built using Angular(i wanted to test the differences to see which one I prefer, React with Typescript is beautiful, would not want to use it without it) and he is hating every minute of it on account of how complex frontend development has become :V
Just wanted to vent a little about a non bothersome situation.8
Another chapter in the life of a novice programmer:
I work a lot with PHP and Laravel, but I feel I'm ready for different challenges. I spent all of last week searching online and getting advice on what language I should focus on next. My two first options were Java and C... So naturally I ended up choosing Python :P
At least I'm certain now and already started studying and wow, I think I made the right choice!3
Probably the MOST complete software book on a very broad subject.
This is book to read for those of you are near college grad, first job in the industry. But to the level of detail and broad coverage this book has I think it’s actually a great book for everyone in the industry almost as a “baseline”
From requirements, project planning, workflow paradigms. Software Architecture design, variable naming, refactoring, testing, releasing the book covers everything, not only high level but also in reference to C.
Why C ...because in the consumer electronics, automotive industry, medical electronics and other industries creating physical products c is the language of choice, no changing that. BUT it’s not a C book... it contains C and goes into dept into C but it’s not a C book, C is more like a vehicle for the book, because there are long established, successful industry’s built around it. Plenty of examples.
When I say it’s the most complete on a broad subject seriously like example the chapter about the C language is not a brief over like many other books, for example 10 pages alone are dedicated to just pointer! Many C books have only a few paragraphs on the subject. This goes on depth.
Other topics, recursion, how to write documentation for your code.
Lots of detail and philosophy of the construction of software.
Even if you are a veteran software engineer you could probably learn a thing or two from the book.
It’s not book that you can finish in weekend, unless you can read and comprehend over 1000 pages.
Very few books cover such a broad topic ALL while still going into great detail on those subtopics. the second part is what lacks in most “broad topic books” ..
Code Complete.. is definitely “Complete”
So the image doesn’t match the rest of my book images because I tried to make an amage to cover of the book, inception style kinda haha 😂19
Alright, time to do some explanation.
Q: where tf are you bruh
A: in your mo-uhhhhh alright, so I was chosen to be the main developer for an interactive promotional video for my school (every year the school holds something called an open day, where kids from 8th grade can come to the school and have a tour in the school first hand. Because of the coronavirus (just gonna call it “the rona” from here) this is now impossible so we are losing the interest and the first impressions so the school decided to make an interactive virtual one). They asked me if I want to do it and I said yes.
Boy, was that ever a mistake... (hint: it was a huge mistake)
So the guy who talked to me and asked if I wanted to do this was my grade’s manager, and he gave me the phone number of my PM. So we talked and stuff, and then this happened: (bruh = PM)
bruh: I’ll send you the API and documentation for the thing that we are working with! They have lots of examples and stuff and they’re Israeli too!
Me: Okay! What language are we talking about here?
Me: (questioning life choices) Okay!
So, what was the objective for me? Build a Firebase client that sends the user’s score and choices to Firestore after he chooses something in the interactive video (for example, go to chemistry or go to physics) while learning JavaScmeme (ECMEMEScript) as I go.
Deadline? A week and a half.
After working almost 12 hours a fucking day, I made it work. Sorta. In order to reconcile with small exceptions and edge cases in the interactive video, I had to hard-code some IDs in the code. I had no choice, since I couldn’t allow myself to spend more and more time to make my code more dynamic than it was because I simply didn’t have time. The code absolutely STINKS but it works.
Today is the day where we (aim) to finish all of the cosmetic things that we need to fix. All of them are non-essential for everything to work, but we want to make this thing presentable because we want to put this on the school’s website.
After a year of college give everyone 2 hours to solve a programming problem in the language of their choice. Like implement a doubly linked list, or count the number of primes between two integers or something straightforward. Anyone who can’t do it gets kicked out of the major.
I’m sick of dealing with people who are 3 or 4 years into a CS degree, and can’t do 30-line programming assignments in two weeks. I might have to work with one of these clowns someday and I hope to God that my university doesn’t send them into the workforce with a degree.3
[SERIOUS ADVICE NEEDED, PLZ HELP]
I am going to school again for like 4 days from tomorrow (don't ask me why, blame the government) and I feel a bit depressed. I just don't know what I have done in the last 2 years.
What I learned:
- Bunch of stupid facts from devRant
- C# stuffs
- Games are expensive
- Music production
And.... that's it, tbh
I don't really have "PERSONAL PROJECTS" that everyone is bragging about, I just have bunch of empty projects with a cool name but just Program.cs in it.....
I am worried of what to do now.
I just feel I made the wrong choice going with C#.
I just feel I should have went with JS.
With JS, you can do
- React Native + Cordova + Titanium + etc and make native android/ios/wp apps
- The WWW stuffs
- Electron --> Cross platform desktop apps (win/mac/linux)
- UnityScript (deprecated, but whatever) --> Games
So, what I am seeing now is a thick fog in the way to my future + career etc.....
I am stuck rn.
Should I continue with my pace and learn more C# and the things I do rn, or change the language and start from scratch, or as a last resort, leave the "make stuff by coding" industry and go to music industry, or just go to the airport and do planespotting and upload in youtube to earn money?
Serious advice please, and no jokes about C# and JS. These languages may suck, but YOUR language may suck more.10
Who thought Lua was a good idea for extending gameplay functionality??
It's weakly typed, has no OOP functionality and no namespace rules. It has no interesting data structures and tables are a goddamn mystery. Somebody made the simplest language they could and now everybody who touches it is given the broadest possible tools to shoot themselves in the foot.
Lua's ease of embedding into C++ code is a fool's paradise. Warcraft 3's JASS scripting language had way more structure and produced much better games, whilst being much simpler to work with than Lua.
All the academics describing metatables as 'powerful extensionality' and a fill-in for OOP are digging the hole deeper. Using tables to implement classes doesn't work easily outside school. Hiding a self:reference to a function inside of syntactic sugar is just insanity.
Nobody expects to write a triple-A game in lua, but they are happy to fob it off to kids learning to program. WoW made the right choice limiting it to UI extensions.
Fighting the language so you can try and understand a poorly documented game engine and implement gameplay features as the dev's intend for 'modders', is just beyond the pale. It's very difficult to figure out what the standard for extending functionality is, when everybody is making it up as they go along and you don't have a strongly-typed and structured language to make it obvious what the devs intended.
If you want to give your players a coding sandbox, make the scripting language yourself like JASS. It will be way better fit for purpose, way easier to limit for security and to guarantee reasonable performance. Your players get a sane environment to work in and you just might get the next DOTA.
Repeatedly shooting yourself in the foot on invisible syntax errors and an incredibly broad language is wasted suffering for kids that could be learning the programming concepts that cross all languages way quicker and with way more satisfying results.
Lua is hot garbage for it's most popular application, I really don't get it. Just stop!22
2 years ago I told myself I'd never learn PHP. 2 years later I'm a desperate college student in a town where the only web dev companies rely on PHP. I didn't want to cave and learn such an obsolete language but it's looking like I have no choice. Goodbye, innocence :'(13
So... concerning the rant on here: https://devrant.com/rants/4299469/...
I'm making my comment as a separate rant because the thread from the original rant was too long and also slowly deviated outside context.
"Why has the rate of female developers reduced overtime?".
Here is my take:
It's natural and I'll explain why I think so...
During my computer science school days we had seventy two (72) males compared to just twelve females (12) in class. The girls could compete in theoretical grounds but when it comes to real coding they were no where near.
This boils down to the passion for programming as a real world subject. In programming you feel rewarded when you "fix a bug" and you're filled with pride when you "learn a new language". This reminds us of the scientific research of boys being more attached to reward engaging activities, most times for bragging rights while for the girls they'd prefer compassionate activities where they can easily be noticed, but unfortunately enough in programming "you only notice yourself".
We can clearly see the mode of career options in our world today...
Interfering with people (Compassionate reward)
* Front desk officer... Female populated
* Support personnel... Female populated
* Nurse... Female populated
* Flight attendant... Female populated
* Childcare workers... Female populated
* Preschool/KG Teachers... Female populated
Interfering with things (Intrinsic reward)
* Engineer... Male populated
* Electrician... Male populated
* Welder... Male populated
* Carpenter... Male populated
* Programmer... Male populated
From the list you'd notice females prefer jobs that are compassionate in reward, require minimal physical activities and also able to make them easily recognisable.
On the other list, male populated jobs are intrinsic in reward, physically inclined, working more with things than with people.
Now seeing the clearer picture, we could sincerely say this is nature at its finest because we have here a balance. Females are kid bearers and we shouldn't be surprised that they are more compassionate to people than with things. Males have more pride than compassion which is needed to protect a family and this indirectly affects their choice of selection.
Females are more attracted to Males with pride.
Males are more attracted to Females with compassion.
I would say, it's all the doings of nature affecting our unconscious career options while we seek to find our purpose in life.36
+++ Sudo team adopting Adobe's Flash player, uniting security with design +++
Could we please stop pretending, that the choice of language has no security impact:
So I'm a new CS student diving head first into programming. I've already made my choice in terms of what language to learn and indent style (bracket gets its own line 😁), but I'm having trouble choosing between vim and emacs...
Without this devolving into a flame war, could we have a discussion on the pros and cons of each editor? I'm curious to see what other developers use and their experiences with each of these editors.28
What was/is your favourite learning experience?
The best teacher (besides google) for your language of choice?
Was it a book? a video series? an instructor? A person? A mentor? Your cat? Maybe dissecting someone else's code...?
Mine is laracasts.com You're welcome Jeffrey.8
I would like to present you the story that I tell everyone who is afraid of expectations, stressed to impress interviewers etc. Story about how I got my first job.
A little of backstory:
I always was good with computers, not like expert, but good. Of course parents were against giving me admin rights, so I just played games or such. When time came to choose my path throgh life, I've chosen to go medicine-related way, and chosen high school with such profile. I did my exams terribly, cause I never cared about marks, so I applied to uni for Information and Communication Technology course. I've learned basics of coding there, much stuff I don't really need right now, but in the end it was the best choice I've made.
With that way too long prologue...
I had to do internship for my uni and decided to try and find some year earlier. There was a lecture about multiplatform coding held by company my uni had partnership with. I've filled a questionare and few weeks later they invited me for assessment - event where they will choose who is good enough.
Of course I didn't believe in my chances to win an internship (1st place got full time job). There were 3 stages:
- solo coding (C/C++ own implementation of list)
- group designing (UML and presentation according to specification)
- interview (talking about code from stage 1, some questions, theory)
I failed 1st stage miserably... so I decided to don't give a shit and bravely presented our group project. A guy asked why we did not included a thing on UML, so I told him that it was not in specification - he was suprised but took it as big +. We "won" that part. When it came to interview... I was myself, cool headed, admited when I don't know things.
I thought that was it.
Few weeks later I received email - they invited me for internship.
They put me into Python project, language that noone in our trainee team knew. Told us 2/4 will be hired. At first I was not interested, wanted to finish my degree. But they convinced me. Now I'm here +2 years.
I am aware there are not many companies like that. Here, the people matters - you don't have to know everything, as long as you are getting along with others.
My tip for you though is: BE YOURSELF, NO MATTER WHAT THEY SAY 🎶
And I wish us more companies like that.😉1
I hate this company so much. I was tasked to write a simple program wrapped in an API. They gave me freedom of choice to use any language and technology because I said it'll be deployed in docker anyway.
Now, when they gave me the server, it's Windows Server 2016, of course, without docker installed (or even supported in any way). The access is done via TeamViewer for which I receive ID and password by calling a guy.
Oh, and everything runs as admin. "It's easier that way and we always do it like this."5
Now I do frontend. I'm a very sloppy and clumsy programmer when it comes to anything that isn't CSS. But when it comes to CSS I'm the ninja, I'm the absolute killer. I go very hard on CSS, I did my very best to know it inside and out. I chose CSS to be my scalpel language, my expertise.
Terrible choice isn't it? I don't think so. Because of my CSS my websites require only a minuscule amount of JS, and JS also more prone to bugs than CSS. So 1000 lines of CSS can never cause a runtime error but even 1 line of JS can.
Client-side pseudo-routing, pseudo-random patterns, persistent state, all-declarative custom data attributes that'll translate into UI, linting and many more – I can do it all in CSS only.
In CSS the order of properties doesn't matter. In CSS you can't write bugs, they are merely glitches that are easily fixable. In CSS you can't cause a runtime error. CSS is very fast (thanks browser optimizations) and powerful yet invulnerable without JS, there is no eval(). CSS never disappointed me. It's declarative, it just does what I tell it to do, nothing more and nothing less.
I'm now at the point where I can do responsiveness without media queries and dark modes without JS, I also lint my webpages' accessibility with CSS only and no JS linter.
CS background + one language that you know at the prodigy level = you're almighty.
Bonus quick CSS maffs – quit using transition: all. https://codepen.io/uyouthe/pen/...6
Node: The most passive aggressive language I've had the displeasure of programming in.
Reference an undefined variable in a module? Prepare to waste your time hunting for it, because the runtime won't tell you about it until you reference a property or method on the quietly undefined module object.
Think you know how promises work? As a hiring manager, I've found that less than 5% of otherwise well-experienced devs are out of the Dunning Kruger danger zone.
Async causes edge cases and extra dev effort that add to the effort required to make a quality product.
Got a bug in one of your modules? Prepare yourself for some downtime because a single misplaced parentheses can take out the entire Node process, killing unrelated pages and even static file hosting.
All this makes for a programming experience that demands much higher cognitive load, creates more categories of bugs, and leads to code bloat/smell much more quickly than other commonly substituted languages.
From a business perspective, the money you save on scaling (assuming your app is more compute efficient under Node) is wasted on salaries and opportunity costs stemming from longer dev time, more QA, and more frequent outages.
IMO, Node is an awesome experiment, a fun language, a great tool for specific use cases, and a terrible fucking choice for an entire website.8
Multi User, One Account, and other shit
I'm gonna rant about something as a user, and someone who makes stupid web stuff.
My bank has been updating their web banking over time and they decided that every individual on an account, should have their own login. They really want to push this on their users, I suspect specifically folks like me and my wife who share one login for the joint accounts we have at the bank together.
Why share one login, because it's the only sure fire way I know that I and my wife can see all the same shit no doubt about it.
The banks never tell you what you can see or can't with joint accounts, I doubt it is even documented on their end, but in every damn case something is hidden or different in some weird way.
Messages to the bank people? If I send it, my wife often can't. I get that for security reasons that's a thing, but it makes no sense for a joint account.
ANY difference to me breaks online banking ENTIRELY. Joint accounts are supposed to be... well one account that is the same.
Other banks we used where we had different logins for the joint account, each login actually had separate bill pay accounts per user. So if I went to bill pay and scheduled something to be paid, my wife had no idea, same if she did.
Right fucking there, banking is just broken entirely!
So no Mr. Bank, fuck you we're both logging in via the same login.
Fast forward to N00bPancakes making a thing.
So my employer has a customer (Direct Customer). Direct Customer wants a thing that makes communication with their customer (Indirect Customer) easier.
The worst thing about making something for your customer's customer is that Direct Customer always imagines that Indirect Customer is gonna be super ninja power users....
But no, that's not the case... in fact almost nobody is a power user, and absolutely nobody WANTS to be a power users.
Worse yet in my case the only reason this tool exists is because Direct Customer and Indirect Customer can't communicate well enough anyway... that should tell you something about the amount of effort Indirect Customer is willing to expend.
So with that tool, this situation constantly comes up:
Direct Customer thinks it would be great if every user from Indirect Company had some sort of custom messaging, views, and etc in of Cool Communication Tool. The reason is because that's what Direct Customer loves about Ultra Complex Primary Tool that they use ....
Then I have to fight the constant fight of:
NOBODY WANTS TO BE A POWER USER, NOBODY EVEN WANTS TO DO MUCH OF ANYTHING ON THE INTERNET THAT ISN'T SCREAMING AT OTHER PEOPLE OR POST MEMES OR WATCH SHITTY VIDEOS. THE MOMENT ANYONE AT INDIRECT COMPANY LOGS IN AND SEES ANY INFO THAT IS DIFFERENT FROM THEIR COWORKER THEY'LL SHIT THEMSELVES, FLOOD EVERYONE WITH 'OH GAWD SOME NON SPECIFIED THING IS WRONG' AND RESPOND TO EMAILS LIKE A JELLYFISH DROPPED OFF IN NEW MEXICO... AND NOTHING WILL GET DONE!!!
God damn it people.
Also side rant while I'm busy fighting the good fight to keep shit simple and etc:
People bitch about how horrible the modern web is and then bitch at web devs like we're rulers of the internet or something.... What really pisses me off about that is other devs who do that.... like bro, do you make policy at your company? You decide not to sell some info or whatever shit your company sells? Like fuck off with your 'man I miss html' because you got scared by some shitty JS error and ran back to your language of choice and just poked your head out of the the basement and got scared... and you shit on another developer about that? Fuck you.1
What do you think about my language choice set for the future (knowing I want to work as a software and app developer) ? Anything to add / remove ?
- C++: Fast and well-documented, so I think it's a standard even in the next decades to come
- Java: Although I think that this language will more likely die in the next decade, I'll maybe keep this language because some dinosaurs enterprises still rely on it. Ah and mainly because it's still widely used in Android apps programming. For now.
Talking about Android, does learning Kotlin worth it ?
- Python: Will mainly use it for automation and prototyping, but nothing more, as it seems not to be widely use in the software development field (or it is ?). I'll also keep it for hobbies, however.
- Rust: This language seems to be a rising star in the industry since it is very clean, classic, as fast as C / C++ while introducing more safety. However I'll wait a bit for this one since it requires more complicated and abstract knowledge I do not have yet.
- C#: Seems to be a must when working on Windows software interfaces, so guess I'll have to learn this one. Will do so gladly, it looks better than Java17
For those of you that went to college or are in college currently, what programming language is the language of choice used in your classes?14
I got into programming because I couldn't solve a maths problem I'd been set, so my dad found an emulator for an old language he used to use a bit and managed to brute force it.
From there I went and learnt my first programming language, an unconventional choice of BBC basic 😛
Assuming you're not a beginner , which language would you learn right now (or) which language would you prefer to stick with provided you already know it.
*The assumption made is to prevent comments on python cause that's usually beginners choice
Personally I want to hone my skills in rust.10
I like rants that are thought provoking and push a message forward regardless of whether they may sting a little, so for my first post on here I'd like to hit at home with many of you.
Question for you desktop guys. I was thinking of making a desktop app with a GUI as a side project. It's mostly going to be business-like CRUD, no fancy stuff. I was thinking of using electron (since I'm a web developer) but I read that it's slow and bloated. On the other hand I would like learning something new. I don't want to spend too much time on the GUI so I would prefer a framework/language that already has some nice open source gui packs available. I have only ever used JavaFX before for a tutorial, is that a good choice? Also, I would like it to work on both linux and windows.11
I took part in the selections for the Italian Olympiad of Informatics. First question:
What if I only knew Java, COBOL, or Python? It just seems like such a limiting thing, is it normal?
Does it happen in other countries too?6
Gonna be basic af here:
1) Let me use the latest version of my language of choice + libraries
2) Unlimited decent coffee (not starbucks but not folgers either)
3) A nice private office with a door so I can be uber productive if necessary.
My biggest hurdle so far is that (having just completed A-Levels in Computer Science and IT) my course/college insists on using Visual Basic as their language of choice to teach students. Which gives us very little in the way of employable skills. I know it's a easy language for idiots to understand, but what good is it in industry. (Although the IDE is by far the best I've used)8
So my team started creating an in-house wiki for all information about our products, methods, scrum, documentation etc. From the beginning we had settled on doing everything in English instead of native language just in case we get a foreign student intern or simply a foreign employee... And now it looks to me that nobody but my team leader and I care about it: half of the documents are either fully native (especially from other part of the team who work on a different project, they have probably never gotten the memo of language choice to start with) or the documents are in some weird-ass combination of English-native which is even worse imo.
I really don't understand why my own team doesn't adhere to the decision though: we're all at least reasonably educated and our country focuses heavily on using English as second language so that should be no big barrier. And why would you want inconsistent documents/code?!
And this is not the first time people don't stick to what is decided for things like formats and language... Getting a bit tired of it tbh...5
What do you think of Elixir + Phoenix to build API’s? Is it a better choice than a more established language like Python or something more new like Scala or Clojure?
At my company we're going through a watershed moment where we're starting to discuss and think about re-building our digital foundations and nothing is off limits. I'm leading the discussion about our architecture where everyone can have their say into what the future looks like for our applications. We're currently on a Drupal (CMS) + PHP7/Symfony (Backend Content Repository) + Symfony Twig templates (Frontend)
Even though I have been developing in PHP most of my career, I personally love Elixir and spend a lot of my time away from work learning it but many of my reasons feels subjective like pattern matching, it's actor concurrency model, immutable data and not having to deal with classes/objects, and I'm not entirely sure how that translates to business value, advocating successfully for a tech stack change requires solid reasoning and good answers to challenges like how do we find Elixir developers when existing devs leave, how easy is it to build a CI/CD pipeline for Elixir/Phoenix, etc.4
Interviewed a dude to join our grad program the other day and he had the choice to program our simple algorithm question in any language, he chose PHP, spent a long time coding it, like a psychopath4
Developers more than other groups tend to hold their operating system or programming language of choice dearly, to the point where if someone thinks poorly of the OS or Language, they take it like a personal attack. Then there are those who think poorly of people who who's a certain OS or a specific language. Combine the two and you get hurt feelings and identity crisis.
Can we all just agree that we're all in different stages of learning and that we all generally end up going the same direction for the same types of problems?
Or just have it out and kill each other over it. Will give me great rant material.3
js developer during the day, python developer at night. The constant switch is almost impossible to adapt to and I see myself up to 2 times per functiin/merhod wondering why this block won't run, just to realize, that implemented a feature from the other language. IDEs provide much less support for script languages than typestrict languages. The choice of libraries is nicely overfitting all your needs and most of the documentation reminds me of my teachers, because they also like to simply force their logic on you, without explaining the backgrounds.
Script languages are fun2
I am not even identifying with a specific language or stack any longer. I am an agnostic web developer that loves learning new things too much to hover over a mean or lamp stack forever. After a certain amount of experience, everything just seems to look the same anyways. PHP laravel, the same concept as C#'s .NET. Blade templating is the same concept as razor templating. React is the same damn concept as Vue and angular isn't too far from either of them. Everything starts to just lose individual importance and starts to morph into web development as a whole. All of a sudden I see why language and framework are not of that high importance. Knowing how to template, how to define routes, how to implement MVC, how to create a generic REST API. The principles start taking importance and the technology of choice becomes less of importance
Rust is a nice language but the learning curve is quit steep so if you don't have time to pick it up I'd suggest using another language especially for assignments if they give you the choice. Otherwise you might like me and my classmates spend more time fighting the rust compiler than doing the assignment7
A very long rant.. but I'm looking to share some experiences, maybe a different perspective.. huge changes at the company.
So my company is starting our microservices journey (we have a 359 retail websites at this moment)
First question was: What to build first?
The first thing we had to do was to decide what we wanted to build as our first microservice. We went looking for a microservice that can be used read only, consumers could easily implement without overhauling production software and is isolated from other processes.
We’ve ended up with building a catalog service as our first microservice. That catalog service provides consumers of the microservice information of our catalog and its most essential information about items in the catalog.
By starting with building the catalog service the team could focus on building the microservice without any time pressure. The initial functionalities of the catalog service were being created to replace existing functionality which were working fine.
Because we choose such an isolated functionality we were able to introduce the new catalog service into production step by step. Instead of replacing the search functionality of the webshops using a big-bang approach, we choose A/B split testing to measure our changes and gradually increase the load of the microservice.
Next step: Choosing a datastore
The search engine that was in production when we started this project was making user of Solr. Due to the use of Lucene it was performing very well as a search engine, but from engineering perspective it lacked some functionalities. It came short if you wanted to run it in a cluster environment, configuring it was hard and not user friendly and last but not least, development of Solr seemed to be grinded to a halt.
Elasticsearch started entering the scene as a competitor for Solr and brought interesting features. Still using Lucene, which we were happy with, it was build with clustering in mind and being provided out of the box. Managing Elasticsearch was easy since there are REST APIs for configuration and as a fallback there are YAML configurations available.
We decided to use Elasticsearch since it provides us the strengths and capabilities of Lucene with the added joy of easy configuration, clustering and a lively community driving the project.
Even bigger challenge? Which programming language will we use
What we’ve noticed during researching various languages is that almost all actions done by the catalog service will boil down to the following paradigm:
- Execute a HTTP call to fetch some JSON
- Transform JSON to a desired output
- Respond with the transformed JSON
Actions that easily can be done in a parallel and asynchronous manner and mainly consists out of transforming JSON from the source to a desired output. The programming language used for the catalog service should hold strong qualifications for those kind of actions.
Another thing to notice is that some functionalities that will be built using the catalog service will result into a high level of concurrent requests. For example the type-ahead functionality will trigger several requests to the catalog service per usage of a user.
To us, PHP and .NET at that time weren’t sufficient enough to us for building the catalog service based on the requirements we’ve set. Eventually we’ve decided to use Node.js which is better suited for the things we are looking for as described earlier. Node.js provides a non-blocking I/O model and being event driven helps us developing a high performance microservice.
The beauty of microservices and the isolation it provides, is that you can choose the best tool for that particular microservice. Not all microservices will be developed using Node.js and Elasticsearch. All kinds of combinations might arise and this is what makes the microservices architecture so flexible.
Even when Node.js or Elasticsearch turns out to be a bad choice for the catalog service it is relatively easy to switch that choice for magic ‘X’ or component ‘Z’. By focussing on creating a solid API the components that are driving that API don’t matter that much. It should do what you ask of it and when it is lacking you just replace it.
Many more headaches to come later this year ;)3
I've lost count of the days at this point...
First things first, lets all praise musky for getting David Bowie stuck in my head for the next month or so, not a bad thing, his song choice was on point. Also the rants have become few and far between because apparently I have to be an "adult" and go to work, pay my bills, and other things that distract me from programming.
Okay, now to the actual dev stuff. I've started to think that maybe my scope of languages is limited somewhat to my comfort zone, which is only java at this point. So for my project (game development), I've decided to pick a language based on what will work best instead of what I'm comfortable with, my runners so far...
C++: The default go to for game development. I would chose this but if I did, my best C++ game would look like Frankenstein's monster and would be filled with terrible code. For that alone I have scratched C++ from my list, for lack of experience.
Java: My usual, my go to, my comfort zone. I don't want to be comfortable though, I want to learn things. That asides, java has tones of resources, frameworks, libraries, and tutorials available. In addition, it's also able to run on pretty much anything, huge ++. The cons are trying to find the best resources, frameworks, libraries, and tutorials to use for a particular situation and that can be hard and confusing. Java may still be my go to but I'll get to that with the next language.
C#: I have never touched C# in my life, and the only things I know about it are what I've heard or read. So far I've heard it is SIMILAR to java, based around C++, and has aged really well compared to other languages. I like that it is similar to java without it being the same language, it will force me to learn things over and you can never reinforce the basics enough. It also has the huge benefit of being Microsoft based while still running on iOS, linux, macOS, windows, and android. This gives me really easy access to implement a mobile version (in the future obviously), while being able to run well on windows, the default OS for most gamers.
Overall I will start writing in C# and see if I like it. If I don't it's no big deal, I still have a good option in java to fall back on. I'm open to hearing opinions on this topic, java vs. C# but please keep your bias nonexistent and you constructive conversation very high. If any actual game developers that have experience with both languages are out their, and reading this, please comment so I can pick your brain.
Some of you may ask about the android scholarship, I contacted google and told them android development wasn't for me so they sent someone a late invite and rescinded mine, hopefully someone else will put it to better use.
Holy god this is long. I'm sorry.
People, help me out.
(first some abstract thoughts)
I am a final year undergrad yet to take steps in the world and i am trying to figure out what to do with my time, what my end goal and next steps should be.
As of now I think my end goal is "relaxation , peace and happiness of me and my loved ones", and to reach there , i need money.
My younger self chose engineering for a particular reason(that i vaguely remember) and weather it was a right or wrong/illogical decision, i guess i am stuck with it and have to use this only to reach my end goal.
Maybe i am regretting this and want to change. Maybe i am just a lazy ass who is bad in his assigned role of an engineer and is running towards glitter in other fields, whatever it is , i am not going against the decision of my past and accepting my identity as an engineer.
I believe once i am able to achieve my goal( that am still not sure about but overall is a good one from general perspective), i guess i will be satisfied
(enough with the deep stuff)
I want to learn how to "learn" . like i am always conflicted about what to do next once the tutor leaves my hand.
for eg, let's say i goto a site abc.
1. They got 1 course each for android , web dev and ai. I choose the web dev course and give my hardworking attention to it
( At this point my choice is usually based on the fact that <A> i should not be stupid to buy all 3 course even if i have money/desire to buy all of em because riding 2 horses is only going to break my ass and <B> some pseudo stats like whichever got more opportunity, which i "like", etc(Point B is usually useless in the long run i guess) )
2. From what i have experienced, these courses usually have a particular list of topic that they cover and apply them to 1 or 2 projects. For eg, say that my web dev course taught me 20 something concepts of basic html/css/js/server and the instructor applied it to blog website
BUT WHAT IS NEXT ?
>> Should I make more projects using only those particular list of concepts?
I usually have a ton of ideas that i want to implement now that i know how to build a blog site.
say i got a similar idea to make say url shortner. I start with full enthusiasm but in the middle way there is some new thing that i don't know and when i search the internet, i realize that there are 5 ways to implement such concept, making me wander off towards a whole list of concepts that were not covered in my original 20 concept course. This makes the choice 2. 2
>> Should I just leave everything , go to docs and start learning concepts from the scratch ??
Usually when i start a project, i soon realize that the original 20 concepts were just the tip of iceberg and there are a ton of things one should know, like how os works, how a particular component interacts with another, how the language is working, how the compiler is executing, etc .
At that point i feel like tearing all my notes away, and learning every associated thing from the scratch. No matter how much my project suffers, i want to know how the things are working from the bottom , like how the requests are being mad, how the routes are working, etc which might not even be relevent for the project.
Why i want to follow approach 2? because of the Goal from abstract thoughts. in theory, having deep knowledge is going to clear my interview thereby getting me a good job.
I will get good money, make projects faster and that will be a happily ever after story.
But in practical this approach is bringing me losses and confusion. every layer of a particular thing i uncover, turns out there is another layer below that. The learning never stops. Plus my original project remained incomplete.
What is your opinon, how do you figure out what to do next?8
* Find something you don't really know or haven't used in your language of choice
* Push that feature in your architecture
* write shit code because the feature really shouldn't be there
Urgh... No exceptions in Rust annoys me. Now you only have the choice between "this didn't work please handle this error, thank you ^-^" and "you fool, prepare for annihilation". So basically if anything remotely serious happens your programs dead and there's nothing you can do about it. I don't get why people have this hate for exceptions. Everytime a new language gets made it's always either "ew it has exceptions" or "it's so nice it doesn't even have exceptions". NOOO! They can deal with serious situations in the best possible way and they can be statically checked (so no "but they're so complex and unpredicable" stuff please). If you can expect an exception they shouldn't be used in the first place (eventhough they are absolutely no less good than Option returntypes or whatever, just different) but in cases when it's impossible to predict an error they really shine. And not having them makes your language worse. If a device driver accesses illegal memory it should throw an exception, so instead of the computer shitting the bed, first the offending function has a chance to resolve the problem at it's root, then a few functions up the call stack, the general control functions of the device drivers can handle it and restart the operation if applicable, and even if the driver fails to handle it, the OS can jump in and restart the driver, log an error and do whatever. It's absolutely beautiful: This hierarchical ramp from near the accident site to more high level operations code ensures the error can be caught at the right level of abstraction without introduction a lot of boilerplate. If everything fails and nobody can handle it *then* the program or kernel or whatever can panic.4
So I'm a 4th year computer science student, and my school has mandatory Co-Op requirements, of which I need to complete an internship for 3 semesters. I have already completed 2 semesters at a tech company, and have continued to work part time for them for the past year. Though, for my last co-op block I wanted to try to go for a bigger more well known company that would look good on my resume after graduation. For several reasons, I was looking for something in the Boston area and I came across two companies that seemed like great places to work at, so I began preparing.
For both companies, the process was very similar: I applied, got a phone interview, completed a coding assignment, made it to the final technical interview. For both technical interviews, I did some research and found the typical prompts that these companies ask. I took a look at both of them and they both involved a relatively simple challenge that involved string manipulation in the language of your choice. Before both interviews I practiced these challenges to make sure I could do them, it was no problem, could do each of them my first try in about 15 minutes. However, when it came to sitting down with their engineers, it was totally different.
Even though I literally practiced the problem before hand, I for some reason kept blanking on things during both interviews. For some reason I was finding it extremely challenging to talk and code at the same time. The first company interview went very well except for the coding portion in which they gave me feedback saying "I didn't seem confident in my coding skills", which is why I didn't get that position. For the second interview I couldn't even finish the assignment in the full hour even though I practiced it beforehand and did it in 15 minutes on my own. It is very frustrating because I feel that out of all the aspects involved in an interview, coding is in reality my strongest, but it just seems completely different when I have to explain what I'm doing while I'm doing it.
Has anyone else experienced this sort of thing? If so, how did you get past it/prepare for it?1
Can't decide which language to pick up as a hobby. Common Lisp or Haskell? There's also Elixir. Tough choice.6
An Application (PC/Smartphone) in which instructions can be given in plain English and it will write its code in coding language of your choice. :D8
Just a quick question: do you think investing in Ruby/on Rails is a good choice? I really like the language, but every time I mention it I feel like an alien.3
There needs to be a new (MOOC) class for people like me.
Hi, I'm William. I can't get my head around designing systems. I've read GoF and a few breakdowns of it as well. I find some patterns obvious for my field of interest (game dev, woot!) while I'm reading through the stuff, but have a pretty hard time retaining much of it. I'm aware of the danger of over using patterns, so I don't worry that much about it. I'll look something up when I'm sure I need it.
Still, I'm tired of the tutorial blues. I can watch a few different people write entire games, usually not in the language of choice, but that only helps me so much.
How do I fight scope creep? In the meantime, how can I make things extensible? Scope does need to creep some, after all.
People joke about starting with (visual) BASIC ruining you forever. I don't believe in that crap, but is this just denial? Am I too dumb for this? Not that I'd ever seriously blame a language for that.
I've been a hobbyist for well over 10 years, please don't make me count exactly how long I've been unsuccessful.
I'm baffled by Löve. I think it's the coolest shit I've seen, maybe ever (unless we're counting IPFS).
I think what really prompted this rant, apart from the obvious degradation of my mental health, was my search for an entity component system for Löve/Lua. Hold your replies. I know there's a few of them, and I'm positive that they're fantastic. I'd roll my own, but that requires actual Lua specific knowledge that I just haven't dug all that deep into yet. I can't wrap my head around the ones that exist, even though I can tell their complexity is next to none really.
I have severe tool anxiety, I'm shocked that I've stuck with ZeroBrane Studio as long as I have. It feels good though.
Sorry to use this as "Devs Anonymous", but I think that's how this community helps (me) best.
I feel like I should stop now and just say: Advice? before this gets much deeper/less readable.
I've gotten started with web dev in the past and learned HTML and CSS and started learning JS but I never could understand what I could use for a code editor to practice and pretty much forgot all of that stuff. Now I'm trying to learn Python, but what's pissing me off is paying for a phone app that doesn't teach you to write code in these lessons, rather interactive multiple choice questions and "put this in the right order". sequences. This is not learning for me, this is informing. Which is info I don't retain. And If i'm paying for it why is there so little to these lessons? Barely covering anything. I've done every lesson Mimo had for python but it didn't really explain the practicality of what it was teaching me and they skipped a lot of shit. Changing the pace of the lesson from Print this and that and heavily explain the most basic stuff 3x over to only explaining the more advanced stuff one fucking time.
I would really like learning python while being walked through a project as a lesson. Teach the terminology, structure, application, process, rinse and repeat, and outcome all in one. With a project target to look forward to. I need a goal to keep my interest.
So far all I know about python is its a programming language used to create Youtube. And I'm trying to learn it because I keep reading that its the recommended starting line. But I need to be able to visualize what this code can be used for. Explanations in terminology I haven't been taught yet just frustrates me. And I read everyone's posts and see many people mention being frustrated, but I haven't even started coding yet. Feel free to comment and redirect me to page that can help. Links are appreciated. Nay, encouraged!7
It's always a matter of much is there to do and in what language...
There is the IDE-Zone, which is dominated by IntelliJ (CLion be praised when you do Rust or C++) for large stuff and heavy refactorings.
Always disputted by VS Code with synced settings. It's nice and comfy and has every imaginable language supported good enough, especially when its smaller change in native code or web/scripting stuff.
Then there is the "small changes" space, where Vim and VS Code struggle whos faster or which way sticks better in my brain...
might be you SCP stuff down from a box and edit it to re-upload, or you use the ever-present vi (no "m" unfortunately)
sometimes things are more easy for multi-caret editing (Ctrl-D or Alt-J), and sometimes you just want to ":%s/foo/bar/g" in vim.
I am sure that each of these things are perfectly possible in each of the editors, but there is just reflexes in my editor choices.
I try to stay flexible and discover strenghts of each one of my weapon of choice and did change the favorites. (Atom, Brackets, Eclipse, Netbeans, ...)
However there are some things I tried often and they are simply not working for me...
might for you. I don't care. and I'll just use some space to piss people off, because this is supposed to be a rant:
nano just feels wrong, emacs is pestilence from satan that was meant for tentacles instead of fingers, sublime does cost money but should not, gives me a constant guilty feeling (and I don't like that) that, and all the editors from various desktop environments are wasted developer ressources.
It's actually funny, as I shared equal passion for the English language and technology( how and why things things worked), with software engineering being the preferred choice.
I started studying practical software engineering, which basically only teaches the fundamentals of a select languages, like C, C#, JAVA, PHP and SQL. Had to teach myself PHP and MVC development for my end project.. So I turned to google and youtube. Great experience so far :)
PS: sometimes I wish I studied English instead!
I started with a free trial of neobook (anyone remember that?), and then moved on to MS SmallBasic. At some point I had discovered Roblox and was stuck with that and lua for a few years. Eventually I started learning C# from a course, but never really used it much so I kinda forgot it.
School got a lot more busy for me and so I wasn't really able to do much programming for a few years, and even when I did, it was mostly bash and docker stuff. Then in the beginning of last year, I was able to start learning Go, which is now my current language of choice.
I was considering creation of client-server app to learn some new language and wanted it to have the best possible performance.
The client part is not an issue, it can be whatever, really... the server choice is pain in the ass...
I have looked up web server framework benchmark here: https://techempower.com/benchmarks/
So comparing those I have 2 options:
- Actix (Rust)
- Vert.x (Java)
I was about to use Vert.x, it handles requests asynchronously which seems nice.
However I thought, what if I wanted to sell this shit someday and Java requires licenses, while Rust don't.
I am terrible if it comes to licenses, so...
How does Java licensing work?
It is on client to pay it cause he is using it or on me as a product owner?
Or should I switch to Rust already?5
Why oh why, did the people behind InnoSetup ever think that Pascal was a good choice as a scripting language?
I have a dream that one day whenever you pass / assign / apppend an object you can choose to pass by value or reference, regardless of the object being a primitive or a container (list, vector etc.) object
So I could stop waste my time and bang my head to my desk over such dumb problems this shit induces because language designers found making list to be passed by reference fun
I know such behavior is inherited from C's logic, and I don't give a fuck about any further explanation I might already know. What can be explained doesn't mean that's logical.
You give the choice to pass by value or reference for every object the same way or you do not at all, but no mixed shit.
Just, shut up and make it happen.4
I’ve made a list of things I want to learn. Languages, frameworks, etc and i don’t really have too many things on the list that way I can learn them well.
I’ve been struggling with this choice because I’m honestly not sure whether or not I should consider Rust to be on the list.
I like the modern features it contains, and I don’t mind the syntax.
I don’t like it’s way of memory management, I’ve heard it’s performance can be very lacking, and I’ve heard a lot of negative things about the compiler and the efficiency of the language (although I feel like efficiency comes down to the person and how the code is written)
So please redpill me on Rust and try to convince me to add it to my list because it’s close.2
Why do we still use floating-point numbers? Why not use fixed-point?
Floating-point has precision errors, and for some reason each language has a different level of error, despite all running on the same processor.
Fixed-point numbers don't have precision issues (unless you get way too big, but then you have another problem), and while they might be a bit slower, I don't think there is enough of a difference in speed to justify the (imho) stupid, continued use of floating-point numbers.
Did you know some (low power) processors don't have a floating-point processor? That effectively makes it pointless to use floating-point, it offers no advantage over fixed-point.
Please, use a type like Decimal, or suggest that your language of choice adds support for it, if it doesn't yet.
There's no need to suffer from floating-point accuracy issues.26
What is your favorite programming language to implement algorithms and data structure?
Or to be more specific, if you write interpreter and compiler, what is your choice of tool?6