|
Post by Gelquie on May 31, 2020 19:14:01 GMT -5
Do you program? Are you a hard-core programmer and maybe do it for a career? Do you only dabble? Do you use it purely for utilitarian purposes and not because you actually like programming?
However proficient or comfortable you are in programming, this is the place to go to discuss programming stuff. Stuff you're working on, things you've discovered, favored platforms, programming woes, the works.
If people want, I can start a list here of programmers on the forum and what languages they use, if you'd like to commiserate. This list is opt-in only.
For now, discuss them all here! Anything from assembly to C to MATLAB to webcoding, or even if you'd just like to listen, all are welcome.
I'll begin with a starter question!
What programming languages do you use?
(Feel free to expand on that answer as much as you'd like.)
|
|
|
Post by June Scarlet on May 31, 2020 19:30:44 GMT -5
Let's see, let me check my resume real quick...
Out of those, though, my favorites are definitely html and css. So much fun to create and edit websites!
In general, I'm looking to get into front-end webdesign or User Experience. It's a wonderful combination of art skills and programming skills.
|
|
|
Post by Gelquie on May 31, 2020 19:52:37 GMT -5
Keep my intro post and response post separate! Now to answer my own question. I'm not much of a programmer myself, and in that list at the top of the first post, I'm in the lattermost category. I'm in my field for the science, not the programming, but I've had to pick up a lot of programming anyway. And also have had to build on it to troubleshoot my own computer.
The tl;dr version:
Basic knowledge of HTML5 Proficient in MATLAB More Proficient at (Specific scientific programming language) Some Proficiency in FORTRAN (Aiming to learn Python) Proficient in Unix bash
To expand on a few...
HTML5 - Honestly, I only know just enough. I still mainly modify templates.
MATLAB - Mainly from undergrad. Snarked at by the Comp Sci community, but eh, it works well enough for scientific programmers. I've gotten rusty at it, but I can still do most things I want on it, and I still use it for quick things. FORTRAN - I don't know how proficient I am. I mostly edit files, and I've gotten better thanks to troubleshooting a very annoying bug for months. I'm decent, but I couldn't write you a script with my eyes closed.
Python - Haven't really learned it yet, but I want to, and I took some steps today to take more serious action on that desire. (I realized I could actually use the same method I use for specific programming language, which is all-terminal plus program commands, so long as the program is installed; go vi/vim for allowing me to just stick to the terminal). Hiring places are moving away from using specific scientific programming language as it's no longer going to be supported soon, in favor of Python. Unfortunately, I went into school too early for Python implementations in the program. So I gotta learn it myself. And I'm trying to get rid of excuses to not do it, because I want it on my resume. The hardest part will be finding things to code.
And I gotta know some Unix bash in order to work in vi/vim and terminal because... honestly, that's just how I learned and am more comfortable using it that way. I only need one window, and only run into problems if I need to do a file transfer (I know a way, I just don't understand paths well enough yet). But overall, finding out I can basically use that same method with different suffixes and prefixes makes my life a lot easier. I can understand why some may be averse to that method, though.
|
|
|
Post by Geodude 🌻 on Jun 7, 2020 21:31:02 GMT -5
I chose a career path that involves computer programming. I don’t really do much of it outside of my work though.
Languages I’ve used:
C++: The primary language of choice when I went through university and I was hired as a C++ developer. I don’t use this much anymore, and it’s to the point where reviewing C++ code can get a little disorienting.
Bash: When I was in school, I learned bash since all of our projects were built on Linux machines so I picked this up in the process. My primary developer machine is a MacBook Pro and I rely on the terminal.
Python: I had one class project in Python and also used it for some of the bioinformatics work when I was a student research assistant. Also used it at work for writing some scripts to make certain tasks easier.
PHP: Did some of this as a research assistant. Not exactly a big fan.
Perl: Also used during my stint as a research assistant. Even less of a fan because all the Perl scripts I dealt with were a mess to read.
JavaScript: I did learn this on the job, but now that I’m on backend services team, I’ve less of a use for this. Don’t have any Node services on my team.
Java/Scala: If I had to say what my best language is, it would be Java. My current role at my job uses Java extensively. I’ve done RESTful services as well as other RPC type services. The Scala used is mostly for testing although the internal framework for my current team is also written in Scala that still confuses me some times.
And then the stuff I learned from Neopets: HTML and CSS xD.
Flavors of SQL: Microsoft SQL, Oracle SQL, and MySQL (would say Oracle SQL is the one I’m most proficient in)
|
|
|
Post by Geodude 🌻 on Jun 9, 2020 10:20:12 GMT -5
By the way, maybe a good followup question might be: what sets of tools does everyone use? I realize that not everyone will need every type of tool listed here.
IDE of choice: IntelliJ Dependency management: Maven and sometimes NPM Text/Script editor: Visual Studio Code and vim Source code management: Git Shell: Bash and Zsh OSes: I use MacOS, Linux and Windows daily. Continuous Integration: Jenkins Testing frameworks: JUnit, Cucumber
|
|
|
Post by PFA on Jun 9, 2020 11:30:24 GMT -5
PROGRAMMING - I know bits and pieces of several languages, but the ones on my resume are C#, C++, HTML5/CSS, JavaScript, PHP, SQL and MySQL
- Of those, my favorite is C#
- The IDE I've used the most is Visual Studio, though for web dev I mostly just use regular ol' text editors (sometimes Dreamweaver if I'm feeling fancy)
- I switch back and forth between Mac and Windows constantly. I don't have much experience with Linux (though I wouldn't mind learning)
- I even have a bit of experience with Assembly because of game modding stuff, Assembly is terrible
- I'm a programming nerd, I love programming
|
|
|
Post by Gelquie on Jun 9, 2020 14:47:29 GMT -5
By the way, maybe a good followup question might be: what sets of tools does everyone use? I realize that not everyone will need every type of tool listed here. Yup, I was thinking of that as a follow-up question. Good posing it! =D So when I first started with MATLAB, I just used the MATLAB interface and it worked fine. I still don't mind using it. Mostly though, I use the terminal, because once you understand bash, you can kinda use it for most things. As a result, I mostly use vi/vim for my text editing, and then return to the terminal to execute; just a few quick keystrokes. (Though sometimes I use SCP to get images stuff until I can learn X11 graphical output. I think I'm onto something for that, though.) Though in a pinch, Notepad or Notepad++ works. The latter is particularly good because of the colored words, so I can have an easier time picking things out. Vim does something similar though, and I can customize how I want it to look. Although this brings up an issue I've had with this method that I only learned about recently. Namely, it has to do with running Python. I followed a tutorial, and I... basically had to stop when it got to off-Python packages because I didn't realize how much of a thing that was or how hard it was to implement and I didn't think we'd actually get there in lesson 1. I'm still having trouble figuring out; I'm trying both apt-install and conda, or going onto a server and using their packages (except I ran into write permissions) and it still doesn't really do what I need. That's the problem with terminal; if there's a problem, I feel like I need to learn a lot to be comfortable working with those! I'm told to download a Python GUI interface until I figure it out, but if I do that I feel I'll just keep using that when I don't actually prefer it. Plus, the thing I like about terminal is that it's consistent; I don't have to worry about the text or the background, and I don't have to worry about using a program that doesn't use a dark background. (Blaring white backgrounds sear my eyes, and some of them use, uh, terrible fonts.) I've been trying to look it up, and I guess I'll post here or edit here if I figure it out. But if anyone has advice lemme know. EDIT: Okay, I overlooked a very simple but necessary command; import module (Replacing "module" with the mdoule in question.) Of course, that doesn't change the issue where if I'm on the server and it doesn't have a module I need and I don't have permission to get it, so I still have to figure that out. But maybe if all else fails I can get it all installed on my own computer and just use that.
|
|
|
Post by Geodude 🌻 on Jun 9, 2020 18:58:47 GMT -5
When I was in school, I was mostly rolling with the terminal for almost everything since it was easier to manage everything in one window and I still use it for writing scripts. I didn’t really use any IDEs for my research jobs either.
Couple of the biggest things when I moved into the industry to a large company was the amount of testing (especially critical in healthcare IT) and the amount of dependencies projects had. My IDE had a lot of features that allowed me to easily run and debug tests and managing dependencies. But I think Java is one of those languages with a bit of red tape/boilerplate things that some languages don’t have, making an IDE a standard part of the toolset.
That said, we also have a lot of plugins for maven where if your code doesn’t comply with some standards, your build automatically fails and you are not allowed to merge a failed build to master. So really the only requirement is whatever works for you and allows you to follow the standards.
My most naive thought when I first became a Java developer was that I didn’t have to care about memory. Boy was I wrong. I was tasked with finding a memory leak in Java code and the heap analysis graph showed a steady drip of kilobytes being used and never collected. Those kilobytes started adding up and after three hours of running performance test, the backend crashed with an Out of Memory Error. The resolution turned out to be some threads failing to stop referencing useless objects.
|
|
|
Post by Gelquie on Jun 9, 2020 22:09:16 GMT -5
Geodude 🌻 - You make a very good point about following internal standards in places. I'll have to keep that in mind for where I am and wherever I go. Thanks for the tip. And aaah, memory. Some of my more recent errors are memory dumps because I'm trying to do a lot of things with decades worth of data. ='D Thankfully nothing to the extent that you got. I wondered "why is this taking so long," and shortened to code to compute One Thing, and when it still didn't compile quickly and combined with earlier memory errors, I could conclude that it just... wasn't working. (Ended up being a matter of one incompatible variable. I still don't know why it's incompatible, but it's not my top priority at this point.) Anyway, yeah, when I first started serious programming, I kind of looked at all the suggestions of "clean up your variables!" with a sort of academic curiosity before ignoring it because I never ran into the issue before. Before, I was only taking small snippets of data to help me get the hang of coding. Now I take that advice much more seriously. Also, finally, figured out how to get everything working on my computer. I was also given a tip for Python that I should set up a virtual programming environment so I can easily switch between different standards and so that I don't accidentally muck up my system files. It's a couple more steps once set up, but I already feel more secure in it. I spent all day trying to find and interpret stale coding advice scattered in places while battling a depression day, and this was the most straightforward advice I found on how to do it. (Mind, I only used it for my OS; there's a list here that includes Windows and Mac.) I'm dropping it here in case anyone wants to get into Python and doesn't mind scary terminal stuff.) Python-3 set-upNever got it working for the work server, but right now I don't... particularly care. If it becomes a problem later, I'll deal with it then.
|
|
|
Post by Geodude 🌻 on Jun 10, 2020 9:22:57 GMT -5
Gelquie It does help to use some sort of automatic checking plugins to handle formatting for you. I think people will have different opinions about formatting and style so if you're on a team, there will have to be some compromise. If I'm temporarily assigned to work on another team's code, I defer to that team's standard. However, if it's automatic, it means that you can spend your time on more meaningful things. If a code review is littered with formatting issues, guess what people will focus on? If you take that out of the equation, now there aren't distractions. Everyone can review the substance of the logic. It's almost like when we review each others' writing, where spelling and grammar checking will keep things clean so we can review the substance of the writing. Nice that you have your python environment ready to go. Are you planning on building anything in particular or just trying to learn through tutorials right now? Somehow I have this idea in my head of building a document queuing system for the NT editor where each document will have a priority depending on if it's for a special NT issue or not. Each document will also have a status of: Submitted, In Review, Review Complete, Rejected, Held Over, Ready for Publish; that the editor can mark as they review our submissions. It's not a real project that TNT has or anything, just an idea I've had in my head lately. Then we could have a dashboard that displays your current submissions and the statuses, and for the editor, a master dashboard with all submissions with filtering and sorting capabilities. I'm really just trying to solve the "lost submissions" problem lol. Each submission will also get a unique identifier within the system. Another nice to have might also be the ability to update an existing submission and reset the status if you need to upload a revision.
|
|
|
Post by Geodude 🌻 on Jun 12, 2020 12:43:57 GMT -5
I saw this article ( arstechnica.com/tech-policy/2020/06/openzfs-removed-master-slave-terminology-from-its-codebase/) today and thought it was interesting. I know this thread should generally stay apolitical, but I do think in the programming world, there is a sizable chunk of technologies that use or have used in the past the "master/slave" or "blacklist/whitelist" terminology which is usually not accurate and is offensive and dated. Therefore, I think this is relevant. When I first used Jenkins as a build system, it was the 1.x line and the terminology used there was that there was a master node and the other nodes that built the code were "slave" nodes. 2.x came along and someone introduced a change that renamed the other nodes to be "agent" nodes instead. I think the change was not only for the better in terms of not using terms related to a terrible time for people in the past, but also more accurate. After all, the Jenkins master node receives build requests from Github and then simply queues it up for the next free build agent. Unfortunately, I think terms like blacklist/whitelist are still more prevalent although I think include/exclude, accept/deny, etc would be more accurate replacements. I think the call to action here is really just if you are working on an open-source project or even writing closed source code and you see something like this, maybe it's a good idea to change it or avoid it in the first place.
|
|
|
Post by Geodude 🌻 on Jul 7, 2020 9:51:40 GMT -5
Here’s a nice article about the history of Macromedia... er.. excuse me... Adobe Flash: arstechnica.com/information-technology/2020/07/the-rise-and-fall-of-adobe-flash/Flash was a huge security issue and did occasionally cause system instability. But it also allowed us enjoy Neopets and it gave us a community. However, as it is a piece of technology, failure to adapt will eventually render it obsolete. Six more months and Adobe Flash plugin will be completely abandoned and I would not recommend running it. I never actually created anything in Flash though. Anybody here do that?
|
|
|
Post by PFA on Jul 7, 2020 10:55:36 GMT -5
I never actually created anything in Flash though. Anybody here do that? I have! I've done several animations and a handful of Flash games. www.deviantart.com/the-legendary-female/gallery/59508174/flashI actually have no idea what's going to come of them. I guess I can convert the animations to video and the games to HTML5...? Converting Flash games is a pain in the butt, though, because you pretty much have to start from the ground up. Unless Flash to HTML5 converters have improved since I last looked, which I doubt. But yeah, it makes me worry about sites like Neopets. What's going to come of all those Flash games, I have no idea.
|
|
|
Post by Geodude 🌻 on Jul 7, 2020 12:08:50 GMT -5
The Neopets beta has some games ported to HTML5. I played Turmac Roll and Kass Basher. It was not the best experience with a touchscreen but I’m sure it’ll be much better on a desktop. That said, each game probably has to be redone which will take a lot of effort. I’m wondering if they’ll look at the games with the most popularity and draw a line in the sand. If it’s not one of the more popular games, I’m suspecting they will just give up on it.
Unity was mentioned in that article as a possible proposal, but from what I gather, it’s not going to automatically port your game for you. You’ll have to redo it from the ground up other than maybe reusing some of the assets.
I think the audience is shrinking too. My brother and I are a generation apart. He’s Gen-Z and I’m a millennial. Flash games weren’t ever a part of his life. He’s always used to finding a game on the App Store and playing that. He also plays my Xbox all the time. But flash games? Not so much.
|
|
|
Post by June Scarlet on Jul 25, 2020 9:44:01 GMT -5
Decided to learn the javascript framework Angular impulsively last night. I tried to learn it on my internship a few years back, but ended up using Wordpress for what I needed instead. But I've been meaning to properly learn it ever since. I'd say it's easier the second time around, partly because the examples are better, and partly because I'm more experienced now. I think it also helps that I have a simpler project this time around. I'm recreating this page here: www.neopets.com/~Storyweaver So that it's easier to input and display and code the data. Once I've recreated it exactly, I might play around with more functionality, like a proper search function, or a form for inputting the data. It's all on a local environment right now, so it's mostly for my own ease of use.
|
|