Jump to content

New programmer, language question

Hi P
8 minutes ago, wasab said:

Assembly is counterproductive, productivity and assembly code are inversly proportional

The purpose of learning an assembly language is not to actually write production software in assembly. Rather, the purpose is to learn how computers actually work...

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, straight_stewie said:

The purpose of learning an assembly language is not to actually write production software in assembly. Rather, the purpose is to learn how computers actually work...

Tell me, do you need to understand wind theory, classical mechanics, and human leg atanomy to know how to ride a bike? Is that even necessary to understand why bike works or how to build a bike?

 

How low level are you going to go to understand how computer works? At the circuit level? At the quantum level? Do you need to understand physics equations for electrons, differential equations for voltages, and what principles behind transistors?

 

How much theory do you need to understand computer? How much math in graph theory? How much math in linear algebra? Are you going to mathematically and inductively prove a compiler spits out the assembly code it does? 

 

Unless you are trying for a PhD and going into the research fields, I wouldn't torture my brain cells with these superficially important but ultimately irelevent details.  

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, bowrilla said:

Python is a popular language because of its easiness and versatility.

All languages are easy and versatile once you understood their basics.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, wasab said:

Unless you are trying for a PhD and going into the research fields, I wouldn't torture my brain cells with these superficially important but ultimately irelevent details.  

Apparently you've never gone for a bachelors degree either, else you would have been exposed to these things. I'm sorry to burst your bubble, but not every developer will be developing business logic in Java. Some need to accomplish actual cool things, and that requires some knowledge.

 

You have been spoiled by OOP, to the point that you actually make the claim "it's useless for programmers to understand how a processor works". I cannot believe that you would come to a programming forum and actually recommend to people that they not learn more about computers. I can't imagine a more counterproductive thing to do.

And, to answer your various questions: Yes. I would expect that every good developer would have an interest in the wider field of computing, and would therefore have been exposed to the existence of such things as transistors, graphs, algorithms, and math beyond algebra.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

32 minutes ago, straight_stewie said:

Apparently you've never gone for a bachelors degree either, else you would have been exposed to these things. I'm sorry to burst your bubble, but not every developer will be developing business logic in Java. Some need to accomplish actual cool things, and that requires some knowledge.

 

You have been spoiled by OOP, to the point that you actually make the claim "it's useless for programmers to understand how a processor works". I cannot believe that you would come to a programming forum and actually recommend to people that they not learn more about computers. I can't imagine a more counterproductive thing to do.

And, to answer your various questions: Yes. I would expect that every good developer would have an interest in the wider field of computing, and would therefore have been exposed to the existence of such things as transistors, graphs, algorithms, and math beyond algebra.

How is OOP and proccessor related? ?

where have I ever said anything about any developers developing bussiness in java? ?

 

I am actually in a bachelor program. Learning theory of computation and Turing machine for example are good for academia but whats the point of it except preparing you for a PhD and a career in the research/science field? ?

 

Many good developers drop out of school. Steve job, mark Zuckerberg, Bill gates, and who else?

 

Not that I say formal education is a waste but many computer science program are seriously irrelevent, outdated, and out of touch with the modern times and the industry. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

Thank you guys, upon reading all those comments and a some google search, I have a much clear idea on which path to follow :)

 

Link to comment
Share on other sites

Link to post
Share on other sites

On 2/28/2019 at 12:06 AM, Dat Guy said:

All languages are easy and versatile once you understood their basics.

No, not really. The degree of easiness varies widely (just look at readability) and versatility beyond the bare point of it being possible to solve a problem varies drastically. Yes, you can code a Website with C++, C or even Assembly (by writing your own webserver that produces HTML replies) but it is a stupid idea, because other languages will be more helpful to get a problem solved quickly. Versatility means not just being able to solve a problem but having a language or a language's ecosystem offering broader support for an easier and faster approach.

Use the quote function when answering! Mark people directly if you want an answer from them!

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, bowrilla said:

you can code a Website with (...) C (...) but it is a stupid idea, because other languages will be more helpful to get a problem solved quickly.

How is "add these 5934 frameworks first" (the Python/Node approach) more complicated than starting a web server with its default configuration (= with FastCGI) and compiling this code?

#include <stdio.h>

int main (int argc, char** argv) {
  printf("Hello world");
  return 0;
}

Which problem can be solved better in Python than in "C++, C" (leaving Assembly out here) and why?

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

11 minutes ago, Dat Guy said:

How is "add these 5934 frameworks first" (the Python/Node approach) more complicated than starting a web server with its default configuration (= with FastCGI) and compiling this code?


#include <stdio.h>

int main (int argc, char** argv) {
  printf("Hello world");
  return 0;
}

Which problem can be solved better in Python than in "C++, C" (leaving Assembly out here) and why?

It's fair enough if you don't like Python, node.js or similar languages but you're unneccessarily exaggerating here. You'll just use one framework for webdevelopment and that's about it. You'll probably add a templating system on top and you're done. Looking for help online? You'll certainly find more help if you stick to the common languages for a given problem.

 

I can tell you though that you can't really develop dynamic frontends with C++ or C. Browsers only support Javascript. While you can try and go the Webassembly route and compiling it from a different higher language, compilers don't exist for all languages.

 

As I've said, I'm not saying you can't solve most problems with most languages - you certainly can with few exceptions. You'll be on your own though if choosing an uncommon language for a certain application and you won't benefit from established and well documentes frameworks. It's certainly good to know what a given framework does in particular but if it's just down to straight productivity, you're better off with a framework so you don't need to reinvent the wheel. It's also a more sensible approach in regards to code readability and maintainability when working in teams on a professional level.

 

Python is the second most popular language in data sciences, machine learning and AI. That means you get tons of libraries that are a) very popular and widely used and b) lots of support. While R is even popular in data sciences its versatility is pretty low. Python is just a better choice here. 

 

If you want to code websites in C, go ahead and have fun. The bragging rights are yours. You can probably forget finding a job as a web developer this way.

 

P.S.: I'm not even a big fan of Python because I don't like languages that force me into formating my code in a certain way. I can still acknowledge its popularity and versatility. Still I prefer node.js, C and C# depending on what I want to do.

Use the quote function when answering! Mark people directly if you want an answer from them!

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, bowrilla said:

You'll just use one framework for webdevelopment and that's about it.

Adding overhead and code which you'll probably never understand properly. I won't even list the security implications here, I guess you can imagine them yourself.

 

2 minutes ago, bowrilla said:

You'll certainly find more help if you stick to the common languages for a given problem.

I don't think you should learn the language du jour just to solve a problem if your actually preferred languages can do everything you need. It takes a lot of time to be relatively good with any language.

 

4 minutes ago, bowrilla said:

While you can try and go the Webassembly route and compiling it from a different higher language, compilers don't exist for all languages.

Which is why I suggested C. Anyway, the current WASM standard does not support being run without a JS wrapper yet. But they're working on it.

But you already went one step too far. Why do you think that websites need client-side code anyway? They don't. If you need to have code that is run on your users' computers, a website is probably the absolutely wrong approach to the problem. Write desktop applications. They can be portable today.

 

8 minutes ago, bowrilla said:

You'll be on your own though if choosing an uncommon language for a certain application

C is probably the most common language today, there is nothing that could not be solved by its giant community.

 

9 minutes ago, bowrilla said:

Python is the second most popular language in data sciences, machine learning and AI.

Probably, so why do you suggest the second most popular language instead of the most popular language to solve problems in this specific field although it is an inferior choice? So if the size of the community doesn't matter, what about Lisp, the language family which basically invented AI?

 

11 minutes ago, bowrilla said:

The bragging rights are yours.

I don't care.

 

11 minutes ago, bowrilla said:

You can probably forget finding a job as a web developer this way.

A good web developer knows more than just one toolkit. So do I.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

On a quick side note (don't know if this has been menitoned yet):

 

SQL ist not a programming language - it's an acronym for StructuredQueryLanguage. You'll use it for interactions with databases (creating/deleting/altering tables and inserting, getting, updating and deleting data). The specific syntax will vary slightly depending on the database engine used (MySQL vs. Oracle for example), but the basic concept will always remain the same.

 

And it's a great skill to have, at least as far as basic insert, update, delete and select statements are concerned.

75% of what I say is sarcastic

 

So is the rest probably

Link to comment
Share on other sites

Link to post
Share on other sites

41 minutes ago, bowrilla said:

You can probably forget finding a job as a web developer this way.

I'm pretty sure that if you have a portfolio full of interactive websites you wrote solely in C or assembly, nearly any development job can be yours.

That will make your job application stick out like a sore thumb, and prove that you are a developer and not a bandwagon follower. Provided that you're not a pain in the ass to work with probably anyone would hire you.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, straight_stewie said:

I'm pretty sure that if you have a portfolio full of interactive websites you wrote solely in C or assembly, nearly any development job can be yours.

That will make your job application stick out like a sore thumb, and prove that you are a developer and not a bandwagon follower. Provided that you're not a pain in the ass to work with probably anyone would hire you.

You get the job if you know the toolkits and frameworks they use in the company you're applying at. If they're working with Python and Django and you come up with websites written in C they'll ask again "but do you have any experience working with Django?". After you reply "No, I'm avoiding all those security implications and overhead and just do it in C." they'll just tell you "Well, thank you for your application. Don't call us, we call you."

 

In a production environment you don't reinvent the wheel unless you have to and you don't switch your stack because of one new person. You have teams and established workflows based on a specific stack. You may adapt to a point but that's it.

 

You might get a job at a company that's looking for a C developer though - unless they're looking for people having experience with system development and not websites written in C. 

56 minutes ago, Dat Guy said:

Adding overhead and code which you'll probably never understand properly. I won't even list the security implications here, I guess you can imagine them yourself.

I specifically said that it's good to know how a framework works under the hood but you will end up using a framework to not reinvent the wheel over and over again. That's just a waste of time and in a production environment this is a waste of money as well. Clients won't pay for that unless there's an advantage. The big frameworks get audited and improved over and over again. And unless you're a security researcher, chances are good that you writing your stuff all on your own will end up in a plethora of security flaws. Rule of thumb: don't write security relevant libraries yourself unless you really know what you're doing and established solutions don't suit your needs. 

 

1 hour ago, Dat Guy said:

But you already went one step too far. Why do you think that websites need client-side code anyway? They don't. If you need to have code that is run on your users' computers, a website is probably the absolutely wrong approach to the problem. Write desktop applications. They can be portable today.

This is getting pointless. Why having a mouse anyway? You can ust use a keyboard. This fancy GUI stuff is just unnecessary overhead, shell is fine! Why have websites at all? Go write native desktop applications!

 

I will name a few buzzwords why interative frontends are a thing:

- server capacities

- loading times

- usability

- design

 

While there are some web applications that might be better suited as a desktop applications (SketchUp for example) there is no reason why some applications shouldn't be implemented in a browser either enriching websites or as (progressive) web applications.

 

1 hour ago, Dat Guy said:

Probably, so why do you suggest the second most popular language instead of the most popular language to solve problems in this specific field although it is an inferior choice?

I'm really tempted to quote Will Wheaton now but I'm going to answer that (rethorical) question: because R isn't as versatile. If you only want to do data sciences, go with R, if you want stuff beyond that and more flexibility, your first choice is Python.

 

This discussion is pointless though: you insist on your approach. While I acknowledge that it is possible to do almost everything in C, your approach is not suitable for productive environments and definitely not for beginners. Questioning all scenarios that don't suit your approach doesn't help either. 

Use the quote function when answering! Mark people directly if you want an answer from them!

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, bowrilla said:

Why having a mouse anyway?

Because they are more efficient than keyboards for control tasks. I don't know about yours, but my computers are tools, used for solving problems in the most efficient way. If a solution is less efficient than others, I'll replace it. This also applies to web vs. desktop applications: The latter give you full access to the underlying OS API. You don't need to care about browser incompatibilities or things like the Back button. A web browser is not an operating system.

 

Also, giant JavaScript bloatware is slow, traffic-consuming and potentially insecure. None of those automatically apply to functionally identical desktop applications.

 

6 minutes ago, bowrilla said:

If you only want to do data sciences, go with R, if you want stuff beyond that and more flexibility, your first choice is Python.

Or Lisp which excels at both. Why do you insist to use inferior, newer, fancy hype languages? Looks like you insist on your approach as well.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

On 2/28/2019 at 12:06 AM, Dat Guy said:

All languages are easy and versatile once you understood their basics.

*SCRATCH*

75% of what I say is sarcastic

 

So is the rest probably

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, bowrilla said:

You get the job if you know the toolkits and frameworks they use in the company you're applying at. If they're working with Python and Django and you come up with websites written in C they'll ask again

You're still missing the point:

If you have a collection of good, interactive websites that you wrote in any language, chances are pretty good that you're going to have no problem doing the same thing in other languages. The interviewers probably won't even ask besides "Hey, have you ever used 'x' language?".

Interviewers don't go "Hey! Show me a website that you wrote with a Javascript front end over an ASP.NET backend using a MySQL data base running on AWS to handle student groups so teachers can interact with their students data". Rather, they go "Hey! Show me that you understand how websites work and that you can write solid web based applications that handle a given task". Well, I should say that if they do ask the first, run like hell.

I mean, just think about it for a little while and you'll be able to convince yourself that software companies don't hire people because they know whatever syntax 'x' language uses, but because they know how to write programs.

 

What you keep referring to is called "cargo cult programming".

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, straight_stewie said:

You're still missing the point:

I think it's the other way around.

 

Companies usually hire the person with the most experience with the stack their team is already using. If they're looking for a React frontend developer they won't hire a kernel module developer or an expert in C++ and 3d development with Vulcan. They WILL ask you if you have experience with their stack. It's okay not to have experience with their whole stack but you should match. You probably won't get the job at a game developing company either if you only worked with Javascript (even with WebGL) and web apps while they're using a C++ engine based on DirectX. A company working with microcontrollers won't hire a data analyst who has only worked in R. 

 

You have to (partially) match their existing stack. The case might be different if they're just looking for one developer and don't have an existing team and an existing code base. In that case they're free to choose. That's rarely the case though. 

14 minutes ago, straight_stewie said:

What you keep referring to is called "cargo cult programming".

No, what I'm referring to is companies usually being unwilling to pay you to learn everything on the go. Companies are usually also unwilling to start all over unless they have to. That means they're usually not throwing away an existing code base.

 

1 hour ago, Dat Guy said:

Or Lisp which excels at both. Why do you insist to use inferior, newer, fancy hype languages? Looks like you insist on your approach as well.

Bloody Nora, Python was an example. I'm not even a big fan of Python, it doesn't suit me as I've said before. 

Use the quote function when answering! Mark people directly if you want an answer from them!

Link to comment
Share on other sites

Link to post
Share on other sites

10 minutes ago, bowrilla said:

If they're looking for a React frontend developer they won't hire a kernel module developer or an expert in C++ and 3d development with Vulcan. They WILL ask you if you have experience with their stack. It's okay not to have experience with their whole stack but you should match. You probably won't get the job at a game developing company either if you only worked with Javascript (even with WebGL) and web apps while they're using a C++ engine based on DirectX

Well that part is true enough, you shouldn't go to a web company with a portfolio full of game engines and you shouldn't go to a game company with a portfolio full of websites.

I was never arguing against that. I'm arguing that software companies generally don't care if new hires have experience with their exact stack, as long as they have good proven experience in their business domain.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

On 2/27/2019 at 4:45 AM, wasab said:

Python→Java→C→C++

 

Good recommendation.

My university had a programming introduction course in python and it seemed easier than the following full course in Java.

Link to comment
Share on other sites

Link to post
Share on other sites

I'm getting a lot of "if you can work at a low level, that means you're probably more knowledgeable or a better developer" in this thread, which is being really dismissive of other fields inside programming. Being "spoiled by OOP" was mentioned before, but there are DEFINITELY wrong and right ways to write OOP systems, and way more people do it wrong than right. There are also plenty of bad developers who write at a low level. The idea that the merit of a developer is based on the tech stack they use is simply a poor way of looking at the industry in my opinion. At every level there are deeper systems to learn and understand that can make you a more effective/better developer.

 

That said, I do agree that you should know as much as possible about the systems beneath you, so a solid knowledge of the basics of how the a CPU works and OS basics are important for anyone looking to the best at their craft.

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, reniat said:

The idea that the merit of a developer is based on the tech stack they use is simply a poor way of looking at the industry in my opinion.

When those statements were made they were under the supposition that "an interactive webserver was written entirely in assembly", which was the situation that we were talking about at the time. I think it's generally agreeable that doing such a thing would make ones understanding about what's going on significantly more apparent than it otherwise would be if, for example, the website was written in Python/SimpleHTTPServer, although the latter doesn't indicate a lack of understanding in any way.

The rest of the argument was about at what level software companies start caring about what technologies your portfolio is built from rather than what business domains your portfolio shows you have knowledge in.

As a personal defense, I said spoiled by OOP because every time that particular individual shows up he only ever recommends Java and uses arguments that ostensibly equate to "it's the best for all tasks and it's portable". That was just me violating the Whil Wheaton rule.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

48 minutes ago, straight_stewie said:

When those statements were made they were under the supposition that "an interactive webserver was written entirely in assembly"

Which seems to be a rather good idea if performance matters:

https://2ton.com.au/rwasa/

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, Dat Guy said:

Which seems to be a rather good idea if performance matters:

https://2ton.com.au/rwasa/

Sure, why not. Someone already did it so why do it allover again? :D 

Use the quote function when answering! Mark people directly if you want an answer from them!

Link to comment
Share on other sites

Link to post
Share on other sites

I'm pretty sure that everything has already been done by anyone.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, Dat Guy said:

I'm pretty sure that everything has already been done by anyone.

Maybe not everything but many things at least on a functional level, yes. Why doing it all over if there are good solutions out there? That's basically my point. That's what libraries and frameworks are for.

Use the quote function when answering! Mark people directly if you want an answer from them!

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×