Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How do I develop my own program?

  1. Feb 5, 2016 #1
    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 wanna 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.
     
  2. jcsd
  3. Feb 6, 2016 #2
    You can absolutely write programs using C
     
  4. Feb 6, 2016 #3
    Why do I get to see you in almost all my questions?
     
  5. Feb 6, 2016 #4

    jtbell

    User Avatar

    Staff: Mentor

    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.
     
  6. Feb 11, 2016 #5
    My opinion Java and C++ is base of modern programming. And good start for next education.
     
  7. Feb 11, 2016 #6

    QuantumQuest

    User Avatar
    Gold Member

    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.
     
  8. Feb 13, 2016 #7
    How about python? I just bought a good book for learning it.
     
  9. Feb 13, 2016 #8

    FactChecker

    User Avatar
    Science Advisor
    Gold Member

    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 web site without getting them confused.
     
    Last edited: Feb 13, 2016
  10. Feb 13, 2016 #9

    QuantumQuest

    User Avatar
    Gold Member

    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.
     
  11. Feb 13, 2016 #10
    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.
     
  12. Feb 13, 2016 #11
    Lisp and F# - what you think about this languages?
     
  13. Feb 13, 2016 #12

    FactChecker

    User Avatar
    Science Advisor
    Gold Member

    Here is a link to statistics on languages (# job openings, $, location, companies). http://www.computerworld.com/articl...ng-skills-that-will-get-you-hired.html#slide2 Spoiler alert: SQL is very popular and pays well. Most general purpose languages are roughly tied.
     
  14. Feb 14, 2016 #13
    I think than C++ and Java is first steps in programming. After everybody can select other language for study.
     
  15. Feb 14, 2016 #14

    QuantumQuest

    User Avatar
    Gold Member

    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.
     
  16. Feb 14, 2016 #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:
     
  17. Feb 14, 2016 #16
    What is QuantumQuest's?
     
  18. Feb 14, 2016 #17

    jtbell

    User Avatar

    Staff: Mentor

    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").
     
  19. Feb 14, 2016 #18
    :rolleyes: :DD
    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 ?
     
  20. Feb 15, 2016 #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: Feb 15, 2016
  21. Feb 15, 2016 #20
    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!
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook