TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

What's the Easiest Programming Language I Can Learn

13 点作者 jesseddy超过 11 年前
Before you burn me at the stake, please hear me out. I&#x27;m a UX designer by trade; while not a developer, I do understand software and technology very well. I spend a lot of time testing and tinkering with ideas by trying to hack them together the best I can. My goal is to build a small but real feeling version of my idea to understand and test if there&#x27;s actually value. I continually hit the wall or spend hours getting caught up on something trivial (I understand this is part of the learning process). Like for most people, time is an issue for me and I&#x27;m really looking for something to help me prototype quickly. I consider Ruby and Python too big for that (am I wrong)? What should I focus on, a Javascript framework, just jQuery, something like Haskell, etc.?<p>Advice?

21 条评论

rprospero超过 11 年前
For discussing whether Python and Ruby are too big compared to Javascript or Haskell, I&#x27;d like to give you the following UX anaology.<p>You&#x27;re a cashier at a bank and want to give the best experience for your customer, who just withdrew $248.67 from her account. The Python way would be to give this person two hundred dollar bills, two twenty dollar bills, a five dollar bill, a two dollar bill, a one dollar bill, a fifty cent piece, a dime, a nickle, and two pennies. Some one on the messge board will later tell you that the fifty cent piece has been deprecated and that you should have use two quarters. Also, the two dollar bill has performance issues and you should have just used two ones. It&#x27;s pretty big and maybe not the best for your customer.<p>The Javascript way is much smaller and simpler. You&#x27;d just give the user 24,867 pennies. There&#x27;s no variation in bills to memorize - just counting. You do get tired of counting after a while and your bank manager tells you a little secret. In the bank, there&#x27;s premade bags in sizes of a ten thousand pennies, two thousand pennies, one thousand pennies, five hundred pennies, two hundred pennies, twenty-five pennies, ten pennies, and five pennies. So, you give the customer two ten thousand penny bags, two two-thousand penny bags, a five hundred penny bag, a two hundred penny bag, a one dollar bill, fourteen twenty five penny bags, a ten penny bag, a five penny bag, and two loose pennies.<p>You get tired of hauling all the pennies, so you decided to do things smaller and simpler. You do things the haskell way. You give the customer a two hundred forty-three dollar bill, a negative nine dollar bill, a three dollar bill, and a thirty-three cent piece. You require the customer to sign an oath stating that she won&#x27;t just throw out the negative nine dollar, but will ensure that it is safely paired with a positive nine-dollar bill when it is returned to the bank for no value. For some reason, the thirty-three cent pieces are all in a drawer labelled &quot;Monoid&quot;, and you&#x27;re told it&#x27;s because they&#x27;re closed with the Yen under addition, as long as Japan keeps printing the zero Yen coin.<p>This isn&#x27;t meant to be an attack on any of these languages. Any of them would be an excellent choice. The javascript way has a smaller number of denominations to memorize, but you wind up needing to learn a long list of premade baggies, which can make everything suddenly seem big. The Haskell way has a small, optimal set of denominations, but learning to figure out to put them together can make everything seem huge. The Python&#x2F;Ruby way has more denominations than either, but some people think that they&#x27;re easier to add up than the Haskell ones and more convenient to carry than the Javascript ones. So knowing which language is the smallest and easiest all depends on what you call small and easy.
评论 #7243060 未加载
cafard超过 11 年前
Frankly, why not PHP? I&#x27;m happy to smirk along with the PHP hate that shows up on HN and elsewhere, but you hit save in your editor, reload in your browser, and you see the results of what you have done.
评论 #7216550 未加载
blakerson超过 11 年前
From one non-programmer to another, I highly recommend Python + Django + a CSS framework to get up and running.<p>Python is a great language to get started on because the code is relatively simple to write and read (for very geeky reasons), and the MIT OpenCourseWare intro to CS for non-majors class is a great way to pick up as much &quot;core&quot; programming ability as you need. That class is taught in Python. Underrated perk: errors are easier to diagnose relative to JavaScript.<p>Once you have a rudimentary grasp of Python, do the Django tutorial and build yourself a sample app. Django is <i>the</i> way to get up and going with a modern-ish MVC (model-view-controller; you&#x27;ll see what it means) app. It&#x27;s very easy to get going as a developer and the only headache you&#x27;ll find is the Virtualenv thing. Easier than getting Rails (which is Django for Ruby) going for the first time, because Rails has the potential for more version conflicts.<p>Lastly, to build out web pages, consider Zurb Foundation or Twitter Bootstrap. These are premade CSS components that make building pages faster (thus good for &quot;rapid prototyping&quot;). They also bring along browser compatibility and jQuery for added UI niceness.<p>If you want to animate things on the page, search for animate.css.<p>I did this a couple years ago to build my first app and now I have a side project that I coded myself. You can do it! :D
lmm超过 11 年前
I think you&#x27;re wrong to dismiss Python and Ruby; they&#x27;re much more elegant than javascript (javascript fans will say its ugliness is superficial, but when you&#x27;re starting out the superficial things matter), and not as complex as Haskell (complexity that will help you out once your program gets above ~10k lines, but will get in your way as you get started). I&#x27;m not sure where you&#x27;re coming from with the &quot;too big&quot;; the core language syntax for Python is very small and simple, the reason the download is large is the large standard library. Which, again, is what you want as a beginner. (For a larger, more production-oriented project it&#x27;s more important that there&#x27;s a good standardized library system and project management tool, and to be honest the Python ecosystem falls down somewhat here. But by the time that becomes an issue you&#x27;ll have learnt what you need to to respond appropriately)
8bithero超过 11 年前
I think the best approach is to build something practical like a web app. Granted, things may still feel like magic when you&#x27;re done with the tutorials, but the mist slowly clears the more you practice and every other day you&#x27;ll be having &quot;AHA!&quot; moments. From what you&#x27;ve mention it does sound like JavaScript is what you&#x27;re looking for. You probably don&#x27;t need to learn an entire framework like AngularJS if you don&#x27;t care about writing entire apps and only care about adding &#x27;flourishes&#x27; to your designs. However, I need to agree @lmm, when starting out it really is the superficial things that matter. Personally I found JavaScript to be a bit tedious at first. Not to mention some hidden surprises you may run into (i.e. how scopes bubble, etc.) - so if your intention is to write full apps, I don&#x27;t know if JS should be your first choice (but it should definitely be your second!).<p>In the case where you want to learn all aspects of building web-apps (and don&#x27;t come from a computer science background), I would have to suggest you start out buy learning a framework like Ruby on Rails or Django (haven&#x27;t tried flask, so can&#x27;t tell). The reason I&#x27;d suggest one of these MVC frameworks is that you will learn a lot about the REST architecture (REST is the fundamentals of the modern web, you will probably be consuming REST services with JS frameworks). At least with rails it taught me the fundamentals, without even realising it. After figuring out how rails handled resources looking at APIs etc, all made sense. So for this reason I&#x27;d recommend people who don&#x27;t have a CS background to learn from one of these frameworks - it really helped me fill in a lot of missing pieces when it comes to developing for the web. As for the language, I&#x27;ve tried both Ruby and Python, and found Ruby to be a bit more fun to write. It made programming seem like solving a puzzle rather than figuring out obscure syntax (which was the case for more &#x27;hard core&#x27; languages like C++). Not to mention the fact that it seems to be the language of least surprises - more often than not, it does exactly what you expect it to do.<p>Sorry if I went on a bit of a tangent. Wrote this in a hurry. Hope it helps.
onion2k超过 11 年前
The easiest language to learn is whichever has the best tools available to you to learn with.<p>If you&#x27;re someone who can just read a book and go from there, try a few books and go with whatever one you like most. If you prefer learning by being taught, find courses need you and learn the language that they teach. If you want to learn online, go to Coursera or Treehouse and pick an option. And so on.<p>Don&#x27;t choose an &quot;easy&quot; language and then struggle with the learning material - pick good learning materials first, learn how to write some simple code, and then use that knowledge to learn a more appropriate language for what you have in mind.
评论 #7243065 未加载
jrs99超过 11 年前
I would actually consider only Ruby and Python.<p>Javascript in my opinion will take longer to get up and running because the language syntax and frameworks are not as straightforward to grasp for a complete beginner.<p>Ruby and Python have awesome books for beginners and intermediate. I recommend Think Python by Allen Downey and Learn to Program by Chris Pine for beginners. Both are interesting, relatively small, and give you a taste of the language, and both are free.<p>Both Ruby and Python have frameworks (Rails and Django) that are used by many, many people making it easy to ask around if you have any questions.
stevenkeith85超过 11 年前
I was a bit of a polyglot in my earlier days..<p>C, C++, C#, Java, Python, Ruby + a ton of stuff at uni<p>I now mostly stick to Python. I&#x27;d say its the easiest to learn and the most fun to program in. (never thought I&#x27;d become a fanboy)<p>If you want to check it out, I&#x27;m writing a tutorial at <a href="http://www.teachmepython.com" rel="nofollow">http:&#x2F;&#x2F;www.teachmepython.com</a><p>You&#x27;ll (hopefully) see that you can get moving real fast with Python. ;)
talmir超过 11 年前
You might be approaching this from the wrong direction. Maybe you dont need a programming language at all, but rather some user interface sketching tool?<p>If you want to learn programming itself, there are very few shortcuts as you will have problems along the way if you dont have the basics down. Pick a language and dive in. I will probably take less time than you think.
mathenk2超过 11 年前
I would strongly suggest you reconsider Python and Ruby. Both of those languages are very easy to read and understand -- two very important characteristics for someone just beginning development of their own project. Once you&#x27;re comfortable with one of those languages, then maybe venture out into other languages. I saw someone else mention PHP -- if you go that route, do learn best practices (e.g., namespacing, sticking to paradigms, etc.). There&#x27;s a lot of really bad PHP out there, and you can either add to that mess, or be a leader in demonstrating good practices.<p>Might I also suggest that you spend a few days with a few different languages; if one feels right, then go with that one. You can&#x27;t get a good feel for the language without using it a bit. Best of luck!
hershel超过 11 年前
How to build an app in a day :<p><a href="http://www.codeproject.com/Articles/699085/Some-simple-tools-for-rapid-mobile-development" rel="nofollow">http:&#x2F;&#x2F;www.codeproject.com&#x2F;Articles&#x2F;699085&#x2F;Some-simple-tools...</a>
评论 #7210764 未加载
jardaroh超过 11 年前
This depends entirely on what you are making. If it is heavily datadriven and you are only prototyping an ORM will help you immensely especially if it creates your database structures for you, for this I reccomend Django (Python). If you are not beholden to a heavily datadriven system you can go with Flask (Python). If you however do not even need a backend to talk to, lets say you do not need data consistency or storage at all, you can get away with an entirely client side javascript solution and later plug in a backend. JQuery is awesome, I use it every day and it makes life a lot easier.
评论 #7210770 未加载
评论 #7211491 未加载
collyw超过 11 年前
Python is nice in that it is a powerful language with advanced features but you don&#x27;t need to use &#x2F; understand those features to get started. So while you may view it as &quot;large&quot; language, you can get started without understanding these things.<p>If you contrast this with Java, Java is a smaller language, but forces you to use object orientation, so you generally have to have a better understanding of abstract concepts from the beginning.<p>Anyway, that&#x27;s two of the languages I know reasonably well. Out of those two I would go for Python.
smileysteve超过 11 年前
&gt; My goal is to build a small but real feeling version of my idea to understand and test if there&#x27;s actually value.<p>If you are already familiar with Jquery, just make a wireframe of page writes in Javascript that show your concept.<p>You might even learn something while you&#x27;re at it.<p>Once you have the concept mapped, demonstrated, and maybe shown to a potential customer, you can consider learning a more complex javascript framework that might use real data,.
workhere-io超过 11 年前
This tutorial is very suitable for beginners: <a href="http://learnpythonthehardway.org/book/" rel="nofollow">http:&#x2F;&#x2F;learnpythonthehardway.org&#x2F;book&#x2F;</a>
phantom_oracle超过 11 年前
JavaScript frameworks are not easy to learn.<p>Just to add to what the other folks have said, if you are looking to rapidly prototype something with a backend, perhaps using Rails with all its gems will allow you to do so. You will have to eventually learn Ruby and Rails itself though, but I am sure there are a ton of &quot;putting it together&quot; tutorials out there.<p>Just plug in the multiple pieces and you&#x27;re good to go.
renox超过 11 年前
Python was designed as an easy to learn language and it has a nice syntax. Its main drawback is in its &#x27;dynamic typing&#x27; nature which means that you can make a mistake which can stay hidden for a long time (compared to a compilation error), which is quite annoying. Sorry but I don&#x27;t know a language which has the same qualities as Python (easy to read, lots of library) but is statically typed..
评论 #7213956 未加载
ecolak超过 11 年前
Out of the ones you listed, Haskell would be the most difficult for sure. For quick prototyping though, like others mentioned, the tools around the language would make a bigger impact than the language itself. So RoR or Django would make a lot of sense. You might also wanna take a look at Meteor (Javascript) for quick prototyping
beyondcompute超过 11 年前
It depends on a domain you are interested in. For visuals it&#x27;s probably Processing. For server side web it&#x27;s PHP. For console utilities it&#x27;s Python. And so on. JS is widely used but it&#x27;s the worst programming languages in existence.
sytelus超过 11 年前
Nothing ever beats GWBasic.
DyslexicAtheist超过 11 年前
C