Professional Documents
Culture Documents
You'll need a background in algorithms. This is a great Coursera course that I'd
strongly recommend if you're serious about it: https://www.coursera.org/special...
Experience in web dev is handy, but in all honesty can be a bit "shallow" and more a
practice of memorization than developing more general purpose skills. That said,
spending time doing projects in web dev is very valuable, but you'll benefit from
toying with a few different backends and frontends valuable, e.g.
You'll benefit from studying Object Oriented Programming. Personally I don't agree
with some aspects of it, but it's important to be comfortable within it. You can likely
find some Coursera course for this.
I'd recommend studying Databases, although you don't need to go too formal on this,
just enough to feel comfortable sketching tables for a database, explaining keys and
foreign keys and some joins.
I'd recommend studying Networking, this book is likely a great practical set of
content: https://hpbn.co/
Lastly, and with lower importance, I'd recommend studying Concurrent Programming
("Parallel Programming"), in particular programming with Semaphores and Message
Passing (as opposed to graphics card programming / CUDA)
Throughout learning the above you should get a chance to play with a few languages,
at least two or three of: Python, C, Java, JavaScript and maybe a couple others. The
ability to write comfortably in at least two of these is essential and is worth bearing in
mind while studying the above.
Effective Java
The Pragmatic Programmer
Code Complete
Cracking the Coding Interview (as a general rule I don’t like books with an emphasis
on beating interviews as they lead people to situations they’re not well equipped
for, but it’s a useful piece of content for refreshing yourself before interviews)
Finally, low down on the list but good if you have an interest would be learning
computer security (specifically hash functions, symmetric ciphers, asymmetric ciphers
and RSA, and digital signatures), computer architecture and compilers, but I frankly
wouldn't really worry about those for entry level stuff.
This is a lot of work, probably a year to two of work focusing primarily on this. One
of the big challenges will be setting goals and measuring progress. Courses offered by
Coursera are a useful way to bring some structure to your studies, as are working on
projects with friends in order to provide a forcing function.
Good luck!
I work with a lot of interns who have learned Java in school and are now
applying it for job purposes. My answer is going to assume you're
looking at entry-level positions.
Schools, for the most part, do not teach Java job skills. If you're learning
event driven programming using Swing, for example, expecting to use
that on the job is a pipe dream. Unless you're applying to a job that lists
it specifically, most Java is web or enterprise oriented.
And of that first list, only about 1/4 to 1/2 of it is ever touched upon in a
college or university class. Virtually none of the second list is ever
covered in college or university classes.
Week 2
-Day_4 : Strings and Regular Expressions
-Day_5 : Basic I/O
-Day_6 : Exceptions, Assertions
Week 3
-Day_7 : Concurrency 1 (Processes & Threads)
-Day_8 : Concurrency 2 (Processes & Threads)
-Day_9 : Networking
There are several resources, problems are level pre-requisite knowledge.
Since you didn't mention what you wanna reverse engineer and since I've no idea of
your profile let me give you an example of reverse engineering which I personally
did.
Like for android (Which by the way is not possible for latest applications) you could
do reverse engineering for most platforms.
There are various youtube playlist to help you get started in both Hardware and
software reverse engineering. Before that check out the series of
OpenSecurityTraining, they comes under 3 categories and features the following
Beginner:
Intermediate:
Advanced:
https://vxheaven.org/lib/pdf/Ide...
3. Play with QEMU emulator, and setup an virtual environment for yourself to step
through the program or just run the program. Or VMWare, or VirtualBox. The key to
RE is that anything unknown should be treated as malicious. And if the binary want
to connect back to some server, perhaps you should intercept the traffic to capture
the content, or emulate the server if possible.
4. Debugger: breakpoint by address, data - these are among the most important
knowledge to master when reversing.
Immunity Debugger
6. Generally, you cannot RE everything, but just identify a target for yourself, eg,
finding the key in memory, go straight into the target.
Sep2016 Update:
Talk and learn from other reverser: Welcome to the longest running and most
complete Crackmes web page on the internet.
In the past is Wotsit: where you can find out all the internal details of different files
like pdf, ppt, xls etc. Now it has died: Where to find information about a file format?
Check out all the unanswered RE questions: Highly Voted Unanswered Questions
http://www.foo.be/cours/dess-201...
http://www.radintech.com/attachm...