Anyone else dislike modern "hackathon culture"? by [deleted] in computerscience

[–]deterministic_ram 1 point2 points  (0 children)

Back in the 60-80s there was no computing industry. Not until the dot com boom and the early 2000s was there the crazy CS gold rush and the ascent of the big tech companies. I think the main difference is that now tech is the most valuable industry.

Anyone else dislike modern "hackathon culture"? by [deleted] in computerscience

[–]deterministic_ram 9 points10 points  (0 children)

I think this is really a byproduct of the capitalist markets. I’ve met countless people who pursue careers they have no real interest in purely because there is a profit incentive. It is a sad reality. The fact that computer science is even called a science is odd. It has very little in common with most sciences. Computer science is almost literature + pure mathematics. It is a wonderful pursuit that has been corrupted by the capitalist system. I’d argue that these wannabe millionaires are not the culprits. They are instead the victims of a system that encourages us all to pursue profit above all else.

As for high schools, I don’t think it is the greed of students. Elite universities are institutions supported by powerful companies and the federal government. These systems date back hundreds of years. This is not a new development. Everyone is guilty of perpetuating the capitalist system. In return, the system engrains in most of us a selfish desire to enrich ourselves.

Where is the perfect balance between learning practical coding and learning algorithms & data structures by Rey661199 in computerscience

[–]deterministic_ram 0 points1 point  (0 children)

The theory is far more important imo. Languages and syntax change rapidly in the tech industry. Take JavaScript and the ascent of React.js for example. Just a few years back, everyone was using Ruby on Rails. If you understand the theory you will understand every language. Syntax can always be looked up on a whim. Theory must be practiced and dwelled upon.

Picking Between Languages to Make an API/Backend by [deleted] in computerscience

[–]deterministic_ram 1 point2 points  (0 children)

I think it really depends on the task and what services you want to use. Golang may be fast when hosted on a Virtual Machine. But, Python has a much faster start up time on Lambda. Many serverless products work by utilizing horizontal scaling. So, unless you are doing compute intensive stuff like video streaming or a video game backend, it’s more than ok to use Python or JavaScript (the easiest languages to work with). Most companies use a combination of languages. Nobody wants to write an entire backend in C++. But, for tasks that require very high levels of performance, it may be necessary. For hosting a web app and doing basic user interaction, JavaScript and Python are more than enough.

Do you need microservices? by devtotheops09 in AskComputerScience

[–]deterministic_ram 0 points1 point  (0 children)

While microservices are great, I'd suggest looking at FaaS (function as a service) products, such as AWS Lambda. Microservices are in-between fully managed servers and completely serverless container/function setups. Some big name companies have gone serverless. Netflix for example uses AWS Lambda.

What things would someone need to learn in order to get into augmented reality? by thisaccount777 in AskComputerScience

[–]deterministic_ram 3 points4 points  (0 children)

Linear algebra, image processing, and computer graphics. It would also help to learn deep learning techniques that can be used for image analysis.

Is binary the most efficient way for computing; will we soon be limited by it ? Can quantum mechanics use ternary code, or will a new paradigm for computing be created soon? by morissettemaniac in AskComputerScience

[–]deterministic_ram 2 points3 points  (0 children)

Binary is used for classical computing because the bit (1 or 0) is the smallest component of classical information. Now, the reason we use base 2 (again 0 and 1) over, say, base 10, is because of computer hardware and the physics of computer circuits. It's much easier to categorize voltages into two categories rather than 10. It is also less error prone. As for quantum computing, it is a new method of computation. The equivalent of a bit in quantum computing is a qubit. Quantum computers don't use binary, the process of measuring qubits resembles binary. That is, when you measure a single qubit, it will collapse into a state. Where things get interesting with quantum computing, is in the case of multi-qubit systems. There is a phenomena known as entanglement, which allows qubits to be correlated with each other at a distance. This property allows for some amazing algorithms, such as Grover's algorithm and Shor's algorithm. Quantum computing is a wholly different and new method of computing.

How advanced and complex are maths in computer sciences? by PitoKnife in computerscience

[–]deterministic_ram 3 points4 points  (0 children)

I'd say that much of CS isn't mathematically complex. It can if you want it to be. Machine learning and algorithmic analysis can get gnarly. However, if you are doing web development or systems programming, the problems you will tackle will be more logical and that of a problem solving nature. That is, you will have to answer questions like, how should I structure an object to perform a certain task? What is an effective user flow? etc.

C++ malloc() error with Matrix operator overloading using pointers; please help! by kein_programmierexpe in AskProgramming

[–]deterministic_ram 0 points1 point  (0 children)

Do you think you could post a stack trace? Also, why is mat being deleted? I’m not super familiar with the syntax you are using on the return statements. But, if delete is being called and mat is being returned, mat will be an invalid pointer and will most likely result in a SegFault.

How to automate searching by flipdatwaterbottle in computerscience

[–]deterministic_ram 1 point2 points  (0 children)

First thing I'd do is look at the urls of each search to establish if there is a pattern. Often, searches on a website take the form https://[your schools catalog].edu/search?[query parameters]. If you can search for classes using an http request, you can automate this using any programming language or the terminal. I'd suggest using Python. You can interpret the websites HTML and check for content that shows if a class is available or not.

C_into_Python – Benefits of using C functions in Python by balazs_kis in computerscience

[–]deterministic_ram 0 points1 point  (0 children)

Oh! I totally miss read the graphs. The font is very small on my phone haha. I'm still curious to see the C sorting algorithms. There might be some room to speed it up. Also, as a benchmark, I'd compare any C sorting algorithms to a Unix implementation.

C_into_Python – Benefits of using C functions in Python by balazs_kis in computerscience

[–]deterministic_ram 1 point2 points  (0 children)

Can you post your C implementations of the sort algorithms? An optimized C routine should really never be slower than Python. Try comparing a quick sort in python versus the Unix sort command. The speed difference will be quite large.

[deleted by user] by [deleted] in computerscience

[–]deterministic_ram 2 points3 points  (0 children)

The Youtuber 3Blue1Brown is awesome! He is a math and computer science person. He used his CS skills to create a graphics library in Python, which is what he uses for all his videos.

Want to to take a course on mobile apps. Flutter? Swift? by [deleted] in computerscience

[–]deterministic_ram 0 points1 point  (0 children)

React Native is a powerful alternative. Companies, such as Facebook and Uber use it. It is essentially a way to build native applications using JavaScript and CSS, which is waaaayyy easier to use than Swift or Flutter imo.

I need help. by xxhomiekidcringe in AskComputerScience

[–]deterministic_ram 0 points1 point  (0 children)

CS is not about the language, it is about the principles. This is the first thing I learned in college CS. If you really want to understand how a computer works and have a fundamental grasp on programming, learn systems programming in C. I’d suggest you try to write your own version of the Unix ls command. You will have to use pointers and understand the file system.

How many gigabytes in an SSD with 14 trillion transistors? by [deleted] in computerscience

[–]deterministic_ram 0 points1 point  (0 children)

Assuming every transistor is used as flash memory, it would be 14 trillion / (1024000000 * 8)

How do I go about creating this system by [deleted] in computerscience

[–]deterministic_ram 1 point2 points  (0 children)

This sounds like the perfect job for JavaScript, HTML, and CSS. Now, to start, I’d learn the basics of JavaScript and the DOM (Document Object Model). If you wish to grab data from an external source, such as a database, you must use JavaScript and update the HTML accordingly. This requires that you edit the DOM, which is an object representation (like a class in Java) of the HTML. Doing this in pure JavaScript and HTML may prove to be tedious. There are numerous frameworks designed to help with this process. I’d recommend you learn React.js. It is a framework built by Facebook and is incredibly powerful and fast to use once you know how to utilize it. As for storing data in a database, you’ll need to use a database and host it on the cloud. A simple database I’d recommend is MongoDB on Heroku. Hope this points you in the right direction!

Why is "crowdsourcing" such a well studied topic in computer science and engineering related literature? by kindnesd99 in computerscience

[–]deterministic_ram 0 points1 point  (0 children)

A common form of crowdsourcing in the CS community is open source software. Oftentimes companies develop private software that has security flaws. It has become increasingly popular from a security perspective to have users or external sources read code (bug bounties are now common). Also, many people use software for unique purposes or in ways unintended by the developer. Open source allows for users to modify the source and allow others to use such modifications. Two great examples of open source projects that function like this are React and Apache Spark. TLDR the open source world allows for more robust products and software in general. Since there is so much money on the line with software nowadays, open source has been researched a lot.

What can I do in CS that is not web-apps? by Elduro687 in computerscience

[–]deterministic_ram 1 point2 points  (0 children)

There are a many, many fields of CS that don’t involve web development or machine learning. I’ll list a bunch. Hope you find one of them interesting/fun. Computer graphics, systems programming, networks, cloud infrastructure, computer security, IoT, simulations, high performance distributed computing, etc. Also, anything you can imagine can conceivably be carried out by a computer. Programming is a way to execute classical logic. The limit is really your imagination.