#computer science

LIVE

boomeyer:

piggywheel:

boomeyer:

I’ve said this to my non-techie friends countless times. It’s no secret that being able to code makes you a better job applicant, and a better entrepreneur. Hell, one techie taught a homeless man to code and now that man is making his first mobile application.

Learning to code elevates your professional life, and makes you more knowledgeable about the massive changestaking place in the technology sector that are poised to have an immense influenceonhuman life.

(note: yes I realize that 3/5 of those links were Google projects)

But most folks are intimidated by coding. And it does seem intimidating at first. But peel away the obscurity and the difficulty, and you start to learn that coding, at least at its basic level, is a very manageable, learnable skill.

There are a lot of resources out there to teach you. I’ve found a couple to be particularly successful. Here’s my list of resources for learning to code, sorted by difficulty:

Novice

Never written a line of code before? No worries. Just visit one of these fine resources and follow their high-level tutorials. You won’t get into the nitty-gritty, but don’t worry about it for now:

Dash - by General Assembly

CodeAcademy

w3 Tutorials (start at HTML on the left sidebar and work your way down)


Intermediate

Now that you’ve gone through a handful of basic tutorials, it’s time to learn the fundamentals of actual, real-life coding problems. I’ve found these resources to be solid:

Khan Academy

CodeAcademy - Ruby,Python,PHP

Difficult

If you’re here, you’re capable of building things. You know the primitives. You know the logic control statements. You’re ready to start making real stuff take shape. Here are some different types of resources to turn you from someone who knows how to code, into a full-fledged programmer.

Programming problems

Sometimes, the challenges in programming aren’t how to make a language do a task, but just how to do the task in general. Like how to find an item in a very large, sorted list, without checking each element. Here are some resources for those types of problems

Talentbuddy

TopCoder

Web Applications

If you learned Python, Django is an amazing platform for creating quick-and-easy web applications. I’d highly suggest the tutorial - it’s one of the best I’ve ever used, and you have a web app up and running in less than an hour.

Django Tutorial

I’ve never used Rails, but it’s a very popular and powerful framework for creating web applications using Ruby. I’d suggest going through their guide to start getting down-and-dirty with Rails development.

Rails Guide

If you know PHP, there’s an ocean of good stuff out there for you to learn how to make a full-fledged web application. Frameworks do a lot of work for you, and provide quick and easy guides to get up and running. I’d suggest the following:

Cake PHP Book

Symfony 2 - Get Started

Yii PHP - The Comprehensive Guide

Conclusion


If there’s one point I wanted to get across, it’s that it is easier than ever to learn to code. There are resources on every corner of the internet for potential programmers, and the benefits of learning even just the basics are monumental.

If you know of any additional, great resources that aren’t listed here, please feel free to tweet them to me @boomeyer.

Best of luck!

I’d also like to add some more specialized resources!

Video games:

Easy game engines (virtually no coding): 

More difficult game engines: 

  • Unity (lots and lots of platforms; C# and JavaScript script; 2D, 3D, VR; free and paid versions)
  • Unreal (specializes in graphics; C++ and visual script; 2D, 3D, VR; free with a royalty on successful products)
  • CryEngine (Lua script; 3D; paid subscription and full license versions)

Mobile game development: 

  • Corona (free and paid subscription versions)
  • SpriteKit (2D) and SceneKit (3D) which are built into the official compiler to create iOS apps (see iOS apps for more resources)
  • also all of the above game engines (cross-platform)

Game console development: 

  • Game Maker Studio (with a paid subscription)
  • Unity
  • Unreal
  • CryEngine

Note that games can also be created on more general platforms like iOS and Android apps, but the resources listed above are specialized for game development.

iOS apps:

In order to develop iOS apps, you’ll need to purchase an iOS developer program membership for $99 a year, which requires an Apple account. Here are some general resources:

iOS apps are developed in the 2 official languages of Apple: Objective-C and Swift, the latter of which is newer and generally much easier to learn.

Objective-C resources:

Swift resources:

Xcode also has SpriteKit, SceneKit, and Metal built in, all of which are incredibly useful for creating apps that require elaborate graphics, particularly games.

SpriteKit resources:

SceneKit resources:

Metal resources:

Also, in order to publish iOS apps, you’ll have to juggle certificates, app ids, and provisioning profiles. This process can be convoluted at times so here are some resources:

Android apps:

In order to develop Android apps, you’ll need to register as a developer for a one-time fee of $25. Here are some general resources:

Android apps are developed in Java and the layout is coded with XML.

Java resources:

XML resources:

For publishing (which is somewhat easier than publishing iOS apps):

3D modeling/animation:

  • Blender (can also be used to create games; Python script; free and open-source; can be installed on Windows, OS X, and Linux)
  • Maya (specialized script; free trial, free 3-year student subscription, and paid subscription versions; can be installed on Windows, OS X, and Linux to an extent)
  • 3ds Max (Python script; free trial, free 3-year student subscription, and paid subscription versions; can be installed on Windows and OS X)
  • RenderMan (specialized script; free for non-commercial/educational use and pay-per-license for commercial use; can be installed on Windows, OS X, and Linux)

Misc. resources:

Stack Overflow is an ask-and-answer community for programmers. It’s amazing and will save your life. Sign up and don’t be afraid to ask for help.

Github offers a student pack (here) if you create an account and prove you’re a student. This gives you free access to a bunch of great programming resources for free for a certain period of time, such as Unreal Engine. Also, Github in general is a site that you can host your code on. Other users can see it, and “fork” it to make a copy of your code and modify it.

Parse is a backend service that allows you to store data in databases it hosts on its own servers. It lets you use push notifications, create users, store and retrieve data, etc. It’s compatible with iOS apps, Android apps, Windows apps, Xamarin, React, Unity, OS X, Windows, JavaScript, PHP, .net, Arduino, and Embedded C. It’s free up to a certain limit that depends on the services you use.

Cloud9,Codebox, and Squad are online IDEs that allow for real-time collaboration and support a variety of languages, so they’re useful for team projects.

And some general advice:

  • Your program will not work right away, 99% of the time. That’s okay. Do your best to figure out where the error is. Here is some advice on debugging (written for PHP but the methods can be generalized).
  • If you’re stuck, Google. Google like there’s no tomorrow.
  • Ask questions on a community like Stack Overflow.
  • For that matter, browse relevant Stack Overflow questions. You can probably find some solutions there.
  • Don’t be afraid to copy and paste.
  • Take breaks sometimes if you’re getting burned out. But don’t stay away from your projects for too long or you’ll lose track of its status.
  • Backup your code. On the cloud, on a USB drive, wherever. If your IDE has a backing up feature like snapshots, use it whenever you hit a milestone.
  • If your project is big, split it up into milestones and set goals. Don’t tackle everything at once.

Like the OP said, coding isn’t just for professionals and “geeks” anymore. Anyone can learn it if you really try, and with the rapidly expanding tech industry, learning coding can really broaden your opportunities.

If any of the links are broken, or you have a question or some information/resources to add, you can contact me through the askbox or the OP through his Twitter (as mentioned in his post).

If you’re interested, try some of these out and best of luck!

Great work expanding on my humble list to include a much fuller collection of resources for learning how to code! Cheers!

25/11/2021

————

Today could have been better :/ But I did do some fun activities

Day 58/?

ultrafacts:Sister Mary Kenneth Keller, from Cleveland, Ohio, entered the Sisters of Charity, a Catultrafacts:Sister Mary Kenneth Keller, from Cleveland, Ohio, entered the Sisters of Charity, a Cat

ultrafacts:

Sister Mary Kenneth Keller, from Cleveland, Ohio, entered the Sisters of Charity, a Catholic religious order, in 1932 and professed her vows in 1940. Later, she studied at DePaul University, where she received a Bachelor of Science degree in mathematics and an M.S. degree in mathematics and physics. In 1965, she received a Ph.D. degree in computer science from the University of Wisconsin. Her dissertation work involved constructing algorithms that performed analytic differentiation on algebraic expression, written in CDC FORTRAN 63.

(Fact Source) Follow Ultrafacts for more facts


Post link
image

The National Science Foundation recently awarded Penn State professor of computer science and engineering, Mahmut Kandemir, a $3.5 million grant to continue his research on improving the speed and functionality of Galaxy, a scientific workflow management system. The group hopes that the funding will help them improve the speed and functionality of Galaxy by making the system compatible with graphics processing units.

Read more about the research at Penn State News.

 Ada Lovelace Day Ada Lovelace Day is an international celebration of the achievements of women in s

Ada Lovelace Day

Ada Lovelace Day is an international celebration of the achievements of women in science, technology, engineering, math, and all related STEM fields.

The celebration is named in honor of English mathematician Augusta Ada King (1815-1852), Countess of Lovelace, known colloquially as Ada Lovelace. Lovelace, the daughter of Lord Byron, is sometimes considered the world’s first computer programmer for the algorithm she wrote for Charles Babbage’s analytical engine, one of the world’s first mechanical computers. Over the years there have been historical disagreements over the extent of Lovelace’s knowledge of the subject and the originality of the work she published in her article, “Sketch of the Analytical Engine, with Notes from the Translator,“ but Babbage himself seemed to dismiss such future claims in his memoir.

Learn more.

Read the NY Times Overlooked Obit on Ada Lovelace:

A gifted mathematician who is now recognized as the first computer programmer.

Image credit: Alfred Edward Chalon [Public domain], via Wikimedia Commons


Post link

An interrupt signals the occurrence of an event the kernel should be aware of. Hardware can trigger an interrupt at any time by sending a signal to the CPU, usually through the system bus; software can trigger an interrupt by executing a system call (also called a monitor call). When an interrupt occurs, the CPU stops what it is doing and transfers execution to a fixed location, which usually contains the starting address where the service routine for the interrupt is located. After the routine finishes, the CPU resumes what was interrupted.

Interrupts are an important part of a computer’s architecture. They transfer control to the appropriate interrupt service routine, which is usually defined in an interrupt vector, or array holding the addresses of interrupt service routines for various devices. Modern operating systems are interrupt driven, and events are almost always signaled by the occurrence of an interrupt or a trap.

Atrap, or an exception, is a software-generated interrupt caused either by an error (division by zero, segmentation fault, etc.) or by a request from the user program for an operating system service.

In x86, the IDT (interrupt descriptor table) provides pointers to interrupt and exception routines.

An operating system is software that manages the computer hardware and provides common services to user programs. They provide an environment in which a user can easily interface with the computer. Operating systems vary widely and often have different goals (mainframe operating systems versus PC operating systems versus real-time…).

computer system can be divided into the hardware, the operating system, the application programs, and the users. The hardware (CPU, memory, I/O devices) provides basic computing resources. The application programs uses those resources to solve users’ computing problems. The operating system coordinates the use of resources.

A general-purpose computer system usually consists of one or more CPUs and a number of device controllers connected through a common bus that provides access to shared memory. The CPU and device controllers can execute concurrently - thus, a memory controller is provided to ensure orderly access to the shared memory.

A computer must have a bootstrap program, an initial program to run when the computer is powered up or rebooted. This firmware is typically stored in ROM (read-only memory) or EEPROM (electrically erasable programmable read-only memory). It initializes the system - CPU registers, device controllers, memory contents, etc. It also locates and loads the operating system kernel, which is the main component of the operating system.

How do filmmakers create a big explosion? UC Santa Barbara researcher Theodore Kim explains how his software creates the smoke effects seen in many Hollywood films.

*Syntax Error* “Ah, there it is.”
*Syntax Error* “Ermmm is it here?”
*Syntax Error* “Arrrg, I give up.”
*colleague comes over* “There it is.”

// submitted by @photofocus-blog1

// This is blatant pandering to the Plutonian gods

( submitted by @skaiawards)

One week before program is due: “I’ve defined all of my classes, I can easily write the code to implement them in a few hours!”

One hour before program is due: “I can not do this it takes more time than I thought!”

// submitted by @kurokatana101

*Building everything properly and efficiently, doing regular tests of individual functions and fixing errors as you go*
“Well alright, everything works alone. Time to test it all together.”
*SERVER CRASHES*
*last backup was an hour ago*
“… so this is how the apocalypse starts. Super duper.”

// submitted by another0ghost

Days into CS100: “Man, this isn’t so hard.”
Days before final: “…I forgot what the header is.”

// submitted by @askcivilization-blog

*working on code that implements a method the professor wrote*

“Why is this not working?! This should definitely work!”

*checks professor’s method*

“He copy-pasted wrong! Of course it won’t work when THE MAIN METHOD IS WRONG!!”

// submitted by thecaptainpetty

*has been staring at and scrolling through code for 20 minutes trying to figure out why its not working*

*fed up* “LOOK I KNOW YOU’RE NOT SUPPOSED TO WORK LIKE 95% OF THE TIME BUT what about that other 5%, huh? Can I program a random generator that’s rigged to only make the code work?”

*suddenly stares wildly off into the distance* “Maybe…”

// submitted by @transcomputational

Programming in Scheme/Lisp “What do you mean ‘no body found in expression’? It’s right there!! Stupid parantheses!”

// submitted by @broadwayuponastar

Program: *Does not do what it’s supposed to.*
Me: “But where is the error?”
Me: *compiles code piece by piece to find the error, while the ‘error in line such-and-such’ remains unhelpful*
Me: *finds the part that throws the error*
Me: “There is no error here…”
Me: *goes through letter by letter*
Me: “…I forgot the array brackets and instead asked for a variable.”
Me: “Why is this throwing an error twenty lines later in a completely different code section?”

// submitted by @whimsilica

When your IDE glitches and nothing works when you know it should work-“What do you meant it’s an error? WTF ARE YOU SMOKING IDE?”
*restarts IDE* “Ohh well would you look at that, everything works, I fucking love my job!”

// submitted by vkmicro

“How to take user input in java”

// submitted by xgigabytesx

When the while loop keeps crashing everything and you can’t figure out how to make it not infinite, and you’re like- “alright, it’s time to contain the beast”

(submitted by vkmicro)

(Reviewing a problem with a group of peers before a Java test)
Me: —and you know what a constructor is, right?
Three of four peers: *blink, exhausted*
Fourth peer: No, we weren’t taught anything.
Me: *incoherent squeaking* *erases stuff on white board to make room for a new wave of illegible handwriting*

// submitted by @fourohfourlifenotfound

loading