How do I develop my own program?

  • Thread starter Anithadhruvbud
  • Start date
  • Tags
    Program
In summary: Yes, I did. I found that Java is still the dominant language in this category, with a majority of usage. However, C++ is growing in popularity, and is now used in a significant number of real-world business applications.
  • #1
Anithadhruvbud
84
6
I am a high school student who knows C language.I am very interested in the field of computer science and I want to develope my own websites and programming languages too.And I have very little time.Since I have chosen Science as my major subject I have got a lot to study.I have 3 months of holidays before the next semester begins and I want to know what are the basic languages I need to know to be able to design my own software?
I hope I can master these languages soon.Looking forward to detailed answers.
 
Technology news on Phys.org
  • #3
Greg Bernhardt said:
You can absolutely write programs using C
Why do I get to see you in almost all my questions?
 
  • #4
Anithadhruvbud said:
what are the basic languages I need to know to be able to design my own software?

What kind of software? Smartphone apps? Web sites? Data analysis on PCs? ...

Different languages are used for different things.

Ah, now I see you also said "develop websites". In that case, I'd start out with plain HTML and CSS, then add PHP for a taste of server-side programming, and Javascript for client-side programming. Look around and read up a bit to see what other technologies are used for the particular kinds of sites you want to develop, and then start learning them.
 
  • #5
Anithadhruvbud said:
I want to know what are the basic languages I need to know to be able to design my own software?
My opinion Java and C++ is base of modern programming. And good start for next education.
 
  • #6
The fact that you know C, is very good for your further learning of programming languages. You have to make up your mind about what kind of software you want to develop. If it is web or mobile, then as jtbell pointed out, HTML 5, CSS , JavaScript and PHP are what you need, based on their today high usage and there are a few alternatives for server - side (Java is one of them in my opinion), worth learning. For more "general" software i.e. desktop applications or other software components, C++ and Java are the real players and of course Microsoft .NET technologies like VB but particularly C#, are real good choices, although there is some tendency in recent years, to be a little less appreciated than the former - this does not mean in any way, they are not good.
 
  • Like
Likes Fooality
  • #7
QuantumQuest said:
The fact that you know C, is very good for your further learning of programming languages. You have to make up your mind about what kind of software you want to develop. If it is web or mobile, then as jtbell pointed out, HTML 5, CSS , JavaScript and PHP are what you need, based on their today high usage and there are a few alternatives for server - side (Java is one of them in my opinion), worth learning. For more "general" software i.e. desktop applications or other software components, C++ and Java are the real players and of course Microsoft .NET technologies like VB but particularly C#, are real good choices, although there is some tendency in recent years, to be a little less appreciated than the former - this does not mean in any way, they are not good.
How about python? I just bought a good book for learning it.
 
  • #8
Anithadhruvbud said:
How about python? I just bought a good book for learning it.
Python is currently the hot new language. A lot of very good programmers like it. In my opinion, it is over-hyped and not as "main stream" as a language like C, C++, Java, or C#. But in a short time, it can allow you to learn a lot and have fun doing it. And it is not a "dead end" language. There is a large community of enthusiastic users and many extension packages for practical use.

You need to know HTML for displaying anything on the internet. But it just allows you to display and navigate to other web pages. You would probably want to be able to carry on a "conversation" with several people who visit your web site. That takes more.

Google "Python web server" of "python CGI" to see how to make web sites using Python. CGI stands for Common Gateway Interface. It is how you can keep track of "conversations" with several people visiting a website without getting them confused.
 
Last edited:
  • #9
Python is a very powerful and flexible language. It has its own style and "quirks" and yes, I think it's a good thing to learn this language too.
 
  • #10
levadny said:
My opinion Java and C++ is base of modern programming. And good start for next education.
Modern ? Except ideas to improve the language itself, did you make a statistics of how much latest C++ is being or can be used in real life business applications by small to large companies around the globe ? If Java and C# were born at the same time, many people would have picked C# over Java.
 
  • Like
Likes Psinter
  • #11
Lisp and F# - what you think about this languages?
 
  • #12
Silicon Waffle said:
Modern ? Except ideas to improve the language itself, did you make a statistics of how much latest C++ is being or can be used in real life business applications by small to large companies around the globe ? If Java and C# were born at the same time, many people would have picked C# over Java.
Here is a link to statistics on languages (# job openings, $, location, companies). http://www.computerworld.com/article/2473702/it-careers/it-careers-97819-top-10-programming-skills-that-will-get-you-hired.html#slide2 Spoiler alert: SQL is very popular and pays well. Most general purpose languages are roughly tied.
 
  • Like
Likes Silicon Waffle
  • #13
Silicon Waffle said:
Modern ? Except ideas to improve the language itself, did you make a statistics of how much latest C++ is being or can be used in real life business applications by small to large companies around the globe ? If Java and C# were born at the same time, many people would have picked C# over Java.
I think than C++ and Java is first steps in programming. After everybody can select other language for study.
 
  • #14
levadny said:
I think than C++ and Java is first steps in programming. After everybody can select other language for study

It is definitely good to do the first steps in these languages, as is in C too. This does not mean that Python, chosen in recent years by introductory CS courses - after Java in previous years, is an unjustified choice. But to be honest, C++ is in no way an "introductory" language. Relatively few programmers all over the world, are experts in this language and can leverage its full potential, because simply this language is not a toy: its unique combination of high and low level features that is really unprecedented, are way difficult to master after a long time in any case. Now, that said, maybe it is not a magic wand nor there is such thing anyway. Every programming language has its merits and drawbacks and this is no exception. But the range of software applications, a skilled programmer can do with C++, is really enormous. I think that a serious part of losing some popularity, are the programming frameworks that got developed through years, giving opportunities for "easy" way software construction. This is true for web languages too. Now, while this is a very good thing for software world, paved a way of "ready-to-use" things and took a lot of programming power off the hands of programmers. But this very thing does not downgrade C++: its power with the recent - as of 2011 and further improvements has been magnified. And good programming skills, are always useful. Java on the other hand, is a different story: it can very well be an introductory language, it is a very serious language for professional development in every programming area and it has a whole lot of user community and support. It does not give the potential that C++ does, but gives a great potential in its own unique "high level" way and it needs enough time to master too. I cannot tell many things about Microsoft family of languages and .NET, as I am not very proficient in these - for the last twelve years, C, C++ and mainly Java and web languages are the tools I use. But I do believe that talking about "good" and "bad" languages is meaningless. Any serious programmer has to develop a good mindset about programming and its tools of the trade and be in a good shape to learn many things in small time.
 
  • Like
Likes levadny and Silicon Waffle
  • #15
Levadny, all IT majors start out with theories of computation and assembly language. The latter is a must to understand in depth debates of program internals and system architecture for product code's bug-fixing, reverse-engineering, optimization etc.
I think QuantumQuest's excellent answer has covered my thoughts and even more... Thanks QuantumQuest :bow: :partytime:
 
  • Like
Likes QuantumQuest
  • #16
Silicon Waffle said:
Levadny, all IT majors start out with theories of computation and assembly language. The latter is a must to understand in depth debates of program internals and system architecture for product code's bug-fixing, reverse-engineering, optimization etc.
I think QuantumQuest's excellent answer has covered my thoughts and even more... Thanks QuantumQuest :bow: :partytime:
What is QuantumQuest's?
 
  • Like
Likes Silicon Waffle
  • #17
Silicon Waffle said:
all IT majors start out with theories of computation and assembly language.
Not here they don't. I'm pretty sure that at most universities in the US, computer-science majors do not study assembly language (unless they do it on their own) until taking something like a "computer organization" class, after they have done at least two semesters of programming in some high-level language like Java or C++. (Here, "information technology" is a broader major that doesn't go as deeply into programming as "computer science").
 
  • Like
Likes Silicon Waffle
  • #18
levadny said:
What is QuantumQuest's?
:rolleyes: :DD
jtbell said:
Not here they don't. I'm pretty sure that at most universities in the US, computer-science majors do not study assembly language (unless they do it on their own) until taking something like a "computer organization" class, after they have done at least two semesters of programming in some high-level language like Java or C++. (Here, "information technology" is a broader major that doesn't go as deeply into programming as "computer science").
That is cool to learn. Students at my colleges were introduced it first in Theoretical Computer Science class when they reached 2nd year and taught deeper in Logic Circuit, Sequential Control related classes from consecutive semesters on until late 3rd year. There was no class about a specific programming language, only one class about the Theory of Programming Languages taught in the late first year.
How are areas like those of life sciences e.g computational physics or chemistry etc categorized for students of interest in the US ?
 
  • #19
To All. In the study focuses on math, everything else is a residual. It seems in China similar education.
 
Last edited by a moderator:
  • #20
I am a high school student who knows C language.I am very interested in the field of computer science and I want to develope my own websites and programming languages too.And I have very little time.Since I have chosen Science as my major subject I have got a lot to study.I have 3 months of holidays before the next semester begins and I want to know what are the basic languages I need to know to be able to design my own software?
I hope I can master these languages soon.Looking forward to detailed answers.

Hi! I'm in the final semester of my junior year studying computer science, so I can't offer a professional opinion but I'd like to give you a little insight from an educational perspective.

First of all, the C language is perfectly workable for learning and developing basic desktop applications, but it's definitely a difficult road ahead if you choose to continue in C. I started with C++ before learning Java. The thing to remember is that every programming language out there is designed to do exactly what it's name suggests- write programs. However newer, high level languages like C++, Java, C# and the like contain powerful libraries and less strongly typed language that makes polymorphism, method overloading, and inheritance easier to implement effectively. So I would plan on learning C simply to teach yourself the fundamentals of memory management, variable declaration, and data/control structures. I probably wouldn't plan on doing a whole lot with it outside of that until much further down the road.

Making websites makes use of fewer programming languages and more scripting/markup languages. They are quite a bit different in that instead of developing a control structure, designing objects, and engineering a problem solving approach, you spend more time automating tasks, designing layouts, and marking up text. It's much more design oriented than program oriented.

If you want to develop your own languages, you will need to be familiar with computational theory, language syntax, discreet mathematics, and will need to know assembly language for whatever chipset you want to compile your language to. I'll be creating a language next year, after four years of study covering the prerequisites listed above. Plan on that being way down the road for you.

To sum up: You have a long but rewarding road ahead. If you want to ensure a strong fundamental background, keep up in your math classes and focus on learning lower level languages like C and (structured, not OOP aspects of)C++, maybe look into assembly. If you want to start building programs, look at higher level languages like Java or C# that will allow you to rapidly construct a UI and implement libraries. Don't plan on being able to build anything useful after three months of self study, but do plan on a rewarding path ahead.

Best of luck!
 
  • Like
Likes Silicon Waffle and levadny
  • #21
Eric V said:
If you want to develop your own languages, you will need to be familiar with computational theory, language syntax, discreet mathematics, and will need to know assembly language for whatever chipset you want to compile your language to. I'll be creating a language next year, after four years of study covering the prerequisites listed above. Plan on that being way down the road for you.
Just a point of clarification: you do not need to know assembly. Compilers have multiple steps in them, writing out to assembly is pretty far down the list and you can write a language without it. Your language is parsed by your grammar and converted into an intermediate code first. If you just want to write a language, the only part you have to create is the grammar, you can reuse existing intermediate code converters if you understand their language. If you write a program in C++, g++ first changes the C++ into LLVM IM, then the rest of the GNU tools take that and make assembly, then send that through the assembler.

Could you imagine how complicated the GNU project would be if they had to write a different compiler for each of their dozen supported languages to each of their dozens of supported architectures?
 
  • Like
Likes Silicon Waffle
  • #22
newjerseyrunner said:
Just a point of clarification: you do not need to know assembly. Compilers have multiple steps in them, writing out to assembly is pretty far down the list and you can write a language without it. Your language is parsed by your grammar and converted into an intermediate code first. If you just want to write a language, the only part you have to create is the grammar, you can reuse existing intermediate code converters if you understand their language. If you write a program in C++, g++ first changes the C++ into LLVM IM, then the rest of the GNU tools take that and make assembly, then send that through the assembler.

Could you imagine how complicated the GNU project would be if they had to write a different compiler for each of their dozen supported languages to each of their dozens of supported architectures?

I suppose I should clarify further that in order to write a USEFUL language, it is my opinion that you should know assembly. You could learn how to use a code converter, but unless you're familiar with the maximum complexity of your statements, and how those statements would be expressed in an assembler, you may as well just stick with the languages that are already out there. Otherwise you'll end up with an inefficient language, or one that is an arbitrary mirror of existing languages.

If you're writing a language just as an exercise and don't need to create something useful, I would still recommend learning assembly so that the process is more enriching for you, as you understand not only your high level expressions but their direct implementation.
 
  • Like
Likes Silicon Waffle

1. How do I determine the purpose and goals of my program?

To develop a successful program, it is important to first determine its purpose and goals. This can be done by conducting research and gathering information about the specific problem or need that your program aims to address. You should also consider the intended audience and their needs, as well as any potential challenges or limitations that may affect the development of your program. Once you have a clear understanding of the purpose and goals, you can begin to formulate a plan for your program's development.

2. What steps should I follow when developing my program?

There are several steps that should be followed when developing a program. These include conducting research, defining the program's objectives and goals, creating a detailed plan and timeline, designing and testing the program, implementing it, and evaluating its effectiveness. It is important to also consider the resources and funding needed for each step of the development process.

3. How can I make sure my program is effective?

To ensure the effectiveness of your program, it is important to test and evaluate it throughout the development process. This can be done by conducting pilot tests with a small group of users, gathering feedback and making necessary adjustments, and conducting a final evaluation once the program is fully implemented. It is also important to regularly review and update the program to make sure it continues to meet its intended goals and objectives.

4. What are some common challenges in program development and how can I overcome them?

Some common challenges in program development include lack of resources, difficulty in engaging stakeholders, and unexpected technical issues. To overcome these challenges, it is important to plan and budget carefully, involve stakeholders in the development process, and have contingency plans in place for any technical issues that may arise. It is also important to be flexible and adapt to changes as needed.

5. How can I ensure the sustainability of my program?

To ensure the sustainability of your program, it is important to consider long-term funding and resources, as well as potential partnerships and collaborations. It is also important to regularly evaluate the program's impact and make necessary adjustments to keep it relevant and effective. Additionally, involving stakeholders and creating a strong support system can help ensure the ongoing success of the program.

Similar threads

  • Programming and Computer Science
Replies
16
Views
1K
  • Programming and Computer Science
Replies
11
Views
1K
  • Programming and Computer Science
Replies
8
Views
878
  • Programming and Computer Science
Replies
6
Views
1K
  • Programming and Computer Science
Replies
33
Views
2K
Replies
3
Views
331
  • Programming and Computer Science
Replies
15
Views
1K
  • Programming and Computer Science
Replies
1
Views
728
  • Programming and Computer Science
Replies
7
Views
658
  • Programming and Computer Science
12
Replies
397
Views
13K
Back
Top