Jump to content

Angry Badger

Member
  • Posts

    69
  • Joined

  • Last visited

Awards

This user doesn't have any awards

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Angry Badger's Achievements

  1. No, the problem is that a lot of useful Computer Science/Engineering material is actually rather heavy on theory and understanding. Security, AI and algorithms in general base themselves on mathematics and sometimes complex logic. You actually need some understanding of math and logic in order to understand and apply said concepts. Programming itself isn't hard, though making robust, secure, complex and efficient applications often requires more knowledge and understanding than just knowing the syntax. People tend to overestimate the importance of being able to code, while underestimating the supporting knowledge required in order to write good code and solve a problem in an efficient matter. Colleges teaching Computer Engineering the correct way will emphasize problem solving, useful algorithms and application modelling and architecture (and also some other useful concepts and paradigms). Coding is actually not that important due to how easy it is and how unimportant it is if you can't actually code well.
  2. Whether or not a college degree matters or not might also differ a bit on a per country basis. I knew people who for example took a year in the US, and I was told that not having a degree there posed less challenges than not having a degree in my country. Here we generally have a lot of good candidates for most positions, including a lot of students with masters degrees, and a degree is therefore quite important if you want your resume looked at. The degree also gives a small guarantee that you at least know something about the most essential areas within software engineering, while candidtaes with no degreees are often wildcards; either skilled or horrible. A degree of course doesn't say much about how you perform, but it's an easy way to exclude those who are most likely to not have the desired skill set, and that's acceptable when you have a lot of candidates and limited time.
  3. You should be familiar with the languages and frameworks which the employer has specified in the job listing, in addition to mastering the relevant theory related to software design and architecture (that is, believe it or not, almost equally as important). Don't go around and apply for jobs as just a self-taught programmer unless you know that you've got the correct experience. Basic programming skills is just a small part of what you need in order to be a software developer, and if your ambitions revolve around the tech industry, you should definitely go to college.
  4. I don't know what you're doing and I don't have any experience with node, but I'm talking about functional programming in laguages that only support functional programming like Haskell and F# (even though F# allows for some OOP, which is kind of nasty). I did try programming functionally in Python, but it was way less efficient than just doing it in Haskell or F#, where you have a lot of helpful functions and features to make you more productive. I can guarantee you that readability isn't a strong point for functional languages like Haskell and F#, and your peers will be in for a lot of pain and suffering if you write Haskell code without properly declaring function return types and thorougly documenting your code. Despite the huge advantages in terms of productivity and debugging, your code will be a living nightmare to understand for others. We're probably talking about very different things. I'd never do functional-style programming when doing C# or Java, but if that floats your boat I'm not going to harp on it.
  5. If you want to look at some actually useful non-OO languages, take a look at something functional like F# or Haskell, both highly respected programming languages which are great additions to your toolbox when working with bigger and more complicated projects. Functional programming has more in common with maths, and relies mostly on fuctions in order to do work, which makes them excellent for multithreaded workloads. Also, it's possible to prove a program's functionality when doing functional programming, while it's impossible to write a proof when working with an imperative program. You can of course do functional programming in other languages that somewhat encourages more than one paradigm (like Python), but I personally wouldn't recommend it.
  6. I'm not completely sure about what you'd like to accomplish, but it seems to me like you want to modify an executable. Disassembling an executable in order to modify it probably isn't something someone here can (or will) help you with. It's a time-consuming process where you'll need someone really familiar with the code or someone able to understand it well to fix it whenever disassembly doesn't turn out right. I've personally never done it, I've only talked with friends who have made attempts at doing it. I think you're out of luck, sorry. Your intent also seems rather shady, so I'd hesitate answering your question even if I knew the method. I generally don't support people who rely on bots in games.
  7. That's very true, and there's a reason why I didn't recommend C++ either. Despite the Java syntax being somewhat derived from C++, the language behaves rather differently. This is very advantageous for a few reasons: You get to be productive and focus on coding contrary to C++, where you'll spend your time debugging pointers and other difficult aspects of the language until you get the hang of them, which is generally a nightmare. Java is a very forgiving and intuitive language in comparison. You'll become familiar with the C++-like syntax, which is super convenient for when you'll have to dive into either C# or C++ later. It's kind of the best of both worlds for a beginner, where you'll get used to a widely used syntax while also writing code that's easy to get up and running. This is another great reason why Java is a better starting language for beginners compared to Python. Object-oriented programming(OOP) is one of the very core concepts of Java development. It's something you will get the hang of, or at least get a basic undertanding of, while learning Java. OOP is generally less central in Python, despite still being important and widely used. In my opinion, OOP is more natural to get exposed to through Java. In Python I didn't feel nearly as paradigm-bound back when I learned it. Java is already quite easy. That's why it's one of the most commonly taught languages in colleges and universities in addition to Python. You're missing out on a lot if you choose to learn Python as your first laguage (significant differences in the type system, differences in intended pardigms, difference in "strictness"), and you'll waste a lot more time when you'll later want to dive into C# or C++. I guess my main point is that they're both very beginner-friendly languages, but you'll pay for it later if you learn Python first and choose to move forward with other programming languages at a later point.
  8. Java is the best choice for someone who just wants to get into programming in the most intuitive and beginner-friendly way in my opinion. Java gives you a smooth and useful introduction to the most essential aspects of a programming lanuage. It's one of the easiest programming languages to get started with, and it's the basis for a lot of important frameworks that are even used commecially today. Python is amazing in terms of programming efficiency (you can really quickly produce working programs, and many aspects of it are considerably easier to understand), but it's not a good language for a beginner who needs to know the basic principles of programming. Suggesting to learn Python in order to code is like recommending someone to take walks in order to train for a marathon; you'll experience that you're missing essential training in order to accomplish your task. Python is something you should start learning after you know the basic principles of programming.
  9. Unless you're looking for random patterns within the data, the problem can't be solved by us here with the current amount of available information, unless someone by chance has solved that riddiculous thing before. No idea what you were thinking when you posted that. You'll probably fail the course if you keep asking for people to solve your problems instead of trying harder yourself.
  10. I don't think we can completely dismiss the fact that Tesla and Quadro cards are unreasonably priced compared to how they perform when compared to what you can get in the more mainstream segment. There are lots of workloads where a Titan X for example will do a very good job for a much more reasonable price, most notably when working with neural networks. This is a workload where Tesla cards are an extremely expensive option when you instead can fill the racks with cards that are much cheaper and perform just as needed, despite having a higher failure rate than their enterprise counterparts.
  11. Indeed, and thery're not even trying to hide their agenda a little bit. They're litterally telling every single enterprise customer out there that you're not allowed to buy the cheaper solutions. Though it's NVIDIA telling ther customers what they can and can't do with their product which is the scary part in my opinion.
  12. Not long ago, NVIDIA released an update to their end-user license agreement, and some of the additions to the agreement are rather alarming... From TechPowerUp: The recent addition can be found in the agreement which you have to accept before directly downloading GeForce-drivers from their site as the fourth point under section 2.1.3. I find it disturbing that NVIDIA feels like they have to prohibit usage in data centers just because they fail to offer enough value to their customers through their insanely expensive Quadro and Tesla cards. Are NVIDIA admitting here that their enterprise solutions aren't good enough/offer enough value compared to their "mainstream" alternatives?
  13. Calling it Windows RT isn't really fitting at all. Heck, I don't think we can really compare it to anything considering we're talking about an ARM-based OS with high-efficiency x86 emulation as a core feature. Calling it RT is either stupidity from OP's side or an attempt to heat up the discussion. And the concept not being disruptive to the market isn't a very logical claim. Battery life is a major problem in computing today, and the most common workloads for both business-customers and normal consumers aren't in demand of raw computing power. Coupled with the incredibly important mobility advantages (both the size reduction and LTE connectivity) it's without a doubt an important step towards making functional computers in a thin and light formfactor. If MediaTek, Samsung and Huawei also joins the game with Windows 10 compatible SoCs (and remember, both Huawei and Samsung have SoCs comparable to the Snapdragon 835), we may even see some competition in terms of pricing, something which we haven't seen in a very, very long time with Intel-based devices.
  14. I'd start with Java. The community is big with a lot of popular frameworks that are often used in enterprise applications and other projects. Tutorialspoint is free, but they move forward quite fast compared to what's often comfortable for a beginner. https://www.tutorialspoint.com/java/index.htm A more interactive and "hands on" way to learn Java would be Codecademy. https://www.codecademy.com/learn/learn-java If you've got money to spend, going for an e-book might not be the worst idea. The content is often explained in a more intuitive manner compared to a lot of free content, with more exercise and better code examples. https://play.google.com/store/search?q=Java&c=books&hl=en There are also some Youtube channels out there with some useful tutorials. https://www.youtube.com/watch?v=TBWX97e1E9g&t=34s
  15. I was just digging around in some old folders, when I came over a file I had lying around from a functional programming course. Thought the function was a little cool. QuickSort (kind of) over 2 lines, in Haskell: qs [] = [] qs (x:xs) = qs [y|y<-xs,y<=x] ++[x]++ qs [y|y<-xs,y>x]
×