This question already has answers here:
Need some ignition for learning Embedded Systems [closed]
(4 answers)
Closed 6 years ago.
I'm a computer systems engineering student. i'm interested in designing embedded systems but i don't know where to begin learning this, and what topics are essentially needed to proceed in this domain.
So can you please tell me what topics do i have to study, and what books are available there in market or online that can help me???
please help me
p.s. normally as an engineering student i have basic knowledge of circuit theory and microcontroller realm.
Take a look at the Arduino.
From the site:
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
There are some good articles on the subject here:
http://www.ganssle.com/articles.htm
Related
Monologue
As I write this question I have already prepared myself psychologically that very soon this question will be flagged and closed as being too broad and general than specific. I am prepared for that as I feel the same too. Nonetheless I must ventilate my doubts to the community which has been indispensable to my survival in IT.
Context
Designing a ticket based knowledge management system
Problem
While reading about ITIL V3 and IT Service Desk I pondered that if I were to build a trouble ticket based knowledge management system where users can raise tickets for any problem/incidents and get its resolution which can then translate to a knowledge base then what could be the approach?
The traditional ITIL V3 jargons of Incident/Problem---> Service---->Resolution------> Knowledge actually are too conservative and cumbersome to my opinion.
When I compare that to the Stackoverflow design of handling questions/answers I find the latter to be far impressive. Stackoverflow has the same concept of Questions (read tickets) and corresponding answers (read resolutions) to a question (again read ticket).
What are some of the good designs for knowledge management against a trouble ticket?
Isn't stackoverflow another great knowledge management system against tickets (questions)?
This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
C# GUI Programming Starting…
I want my brother learn about Microsoft .Net ( Visual Studio 2008 ).
So, which one is beginning, easy for learning? Like Hello World app.
And do you know any book, ebook, or website teaching about that for beginner ?
Thanks.
I learn myself, no school at all. And I want to learn VB, not C.
Here is a free website which can be a good starting point.
http://www.homeandlearn.co.uk/csharp/csharp.html
After mastering everything here, you'll have A LOT of knowledge which will then take you from resource to resource depending on what you need to achieve with your .NET app.
Good luck!
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
I know that this question is too abstract. But. How much time do i need to learn LabVIEW to become average LabVIEW developer? For example, if I buy good book about LabVIEW and have 8 hours per day (on my work) dedicated to LabVIEW learning how many days i will spend on LabVIEW learning? Could you please provide example from your own experience. More information about me that can be helpful: I'm a developer and know c\c++\python and a little bit of java languages.
Like Swinders said, it might depend a lot on your sensibilities. I have seen people who had a really hard time migrating to the data flow concept. It's a different paradigm from the classic text-based languages and some people can't easily think in these concepts.
If you get past that hurdle, you'll find that the IDE handles a lot of the annoying things you used to take care of for you (things such as syntax and memory allocation). This allows you to become productive very quickly.
It doesn't mean, however, that your level would be high. One potential pit you should try hard to avoid is casting your existing experience onto LV. The most common example is probably local variables. This may be shocking to people coming from a text-based world, but LV does not have variables, per-se. Unfortunately, it does have elements called variables and people migrating from C who find them jump on them and use them as they would use variables in C, leading to LV code which looks like C code and is bad code (at least in LV).
If you do manage to work around this, I would guess you would become better than the global average in less than a month and better than most professional developers after creating three projects you would later look at and say "what the hell was I thinking?".
I never took any of the NI courses (although I understand some of the advanced architecture ones are pretty good), but I would suggest you also spend some time in some of the online communities (such as LAVA or the NI forums) and look at some of the examples and discussions there. There's a lot of material about best practices, design patterns, etc., which would allow you to become a more professional developer.
Above all, do not abandon your current professional conduct. If you have a structured process for designing and developing software, you already have a leg up on the majority of LV programmers. Just make sure you adapt and keep using such a process.
I started with no commercial programming experience (I have always programmed for fun) and followed an on-line tutorial to pick up the basics of LabVIEW. Within a week I was able to understand existing code and could develop a small application.
It is hard to give an estimate on how long it would take to become an 'average' LabVIEW developer as this depends on what you mean by 'average'. One thing to consider is how easy you are able to think in terms of data flow rather than procedural languages. If you can pick up new programming languages quickly then this will help.
Would you be the only person using LabVIEW or are there others at your place of work that could mentor you? You may also find that there are user groups operating near you which I would recommend (check the NI website or contact your local NI office).
There is then the experience that you will need to gain to allow you to produce good LabVIEW code. I was lucky to be able to attend the National Instruments training courses a few years ago which I think helped me but only by using it have I become an 'average' LabVIEW developer.
I'd say a few weeks or most with devoting the majority of your work time to it. I had a similar background to you when I started to develop in LabVIEW. The hardest part was adapting to the lack of variables. There are local variables, but it's not what you're used to at all. Additionally, their functions, called Virtual Instruments (VIs) can have multiple inputs and outputs, similar to how Python can handle n-tuples.
I will warn you, their array handling features are terrible. A lot of general concepts you might be used to are difficult to implement. My mantra when working with the language is it makes hard things easy and easy things hard. There are also a lot of "gotchas" in the language set, especially with their DAQmx function. I'm not sure what you're planning on developing and their Real-Time module has it's own issues as well, different issues from the main language set.
I would definitely spend some time on NI's website and read as many whitepapers as you can, especially about good design practices, here and here. Learn their State Machine (here or here) and Producer/Consumer pattern well, that's the backbone of many applications you'll be writing.
Good luck, it will make your head spin for a while.
There are some excellent resources to help you get started. If your employer can afford training, you can get started pretty quickly by taking a week of training run by National Instruments. The NI website also has an outstanding developer community that is highly responsive to questions even from novice developers. But I would say that the key to being comfortable with the idioms and style of the language is just plain old practice that you get by solving problems using LabVIEW on a regular basis.
You will find eventually that there is the question of hardware and instruments. Labview is really all about data acquisition-- either through NI's DAQ hardware or through traditional GPIB instruments, or through 3rd party api's (activeX, .NET assemblies). If you're using LabVIEW, you're probably interfacing to hardware of some type. This can get really challenging with complex instruments and measurements. If you're getting started, I would recommend making sure that you have unlimited access to at least some of the hardware you'll be working with. In other words, make sure that your manager understands that you need a lot of access to the hardware in order to get good at developing with it.
We are using LabVIEW to create test software for our factory test systems. In the past years I have already trained some beginners to understand LabVIEW. I would say it depends on how good you are at learning new concepts. I have trained some to be able to produce standalone applications using the queued message handler concept, doing dynamic GUIs and using hardware drivers within about 3 weeks. Unfortunately there were others aswell that were only able to learn half of that within half a year.
The most important thing in my opinion is the learning source. Having an experienced LabVIEW user that can guide you is the best option. If there is no one not available I would recommend Youtube Tutorials combined with the shipped LabVIEW examples.
The LabVIEW core tutorials are not very handy in my opinion. Those are quite boring and far from what you really need to get started.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I'm very interested in learning about cryptography, steganography, and similar practices.
What books, resources, would you guys recommend in this area?
seminal crypto book
http://www.schneier.com/book-applied.html
This book is very nice and gives you a general idea about cryptography and as far as I remember some it gives also some information about steganography (from the ancient times):
The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography although not an academic book.
For steganography you could check also the following two: Disappearing Cryptography, Third Edition: Information Hiding: Steganography & Watermarking or Digital Watermarking and Steganography: Fundamentals and Techniques. As you are a Java developer you may also want to take a look at the Digital Invisible Ink Toolkit.
If you want to go deep into Cryptography (for example RSA algorithm) you should read math books about number theory, abstract algebra (for an introduction to these you can check this: A Primer on Algebra and Number Theory for Computer Scientists (it's a pdf file)). Or if you want to go much deeper you should read about elliptic curve cryptography.
About hacking you may want to take a look at this one: Hacking: The Art of Exploitation.
This book The Art of Deception: Controlling the Human Element of Security is also nice to read in order to learn social engineering techniques.
For learning hacking, i would suggest The art of Exploitation by John Ericson, Grey Hat hacking, Network Security and cryptography by William Stalling and even better playing online wargames (security challanges).
Good luck
In addition to the Schneier book already mentioned, I recommend Beginning Cryptography With Java.
I would suggest, in order to integrate your books with a different media, this online course: https://www.coursera.org/course/crypto
It's very well done, it offers both theoretical and practical sessions.
The Coursera crypto course is a good introduction to cryptography. As far as practical resources go I would suggest:
Over the wire - practical security challenges from basic configuration issues to exploit dev.
SmashTheStack - lots more practical security challenges.
Corelan tutorials - tutorials on exploit development
DEF CON - Defcon is a famous security conference that also has a reasonable reading list and a lot of videos from their conferences.
In my development experience I have found it useful to have a go at some of these things to really improve my secure software development. There are also capture the flag events that are events designed to educate and test security knowledge and deep knowledge of systems. Some of them include:
DEF CON - probably the biggest and toughest of them all
Ghost in the Shellcode - hosted at Shmoocon
Plaid CTF - run by team from Carnegie Mellon University
CSAW - run by NYU Poly
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I work in a shop that is certified at CMMI level 5. This certification is important because it gives us access to certain customers and contracts. I'm looking at how to blend Scrum with CMMI. I've found some info on mixing Scrum with CMMI-3, but quite a bit of it is "hand wavy" and wouldn't hold up to intense scrutiny. Specifically, the organizational KPAs seem challenging.
What experiences have you had (good and bad) mixing the two processes?
This seems an interesting paper by the SEI folks at Carnegie Mellon (not just about Scrum though):
CMMI and Agile are compatible. At the project level, CMMI focuses at a high level of abstraction
on what projects do, not on what development methodology is used, while Agile methods
focus on how projects develop products. Therefore, CMMI and Agile methods can co-exist
CMMI or Agile: Why not embrace both (PDF)
Here is an experience report on the results of introducing Scrum into a CMMI Level 5 environment to replace waterfall projects for large defense and healthcare contracts (pdf).
Abstract:
Projects combining agile methods with
CMMI1 are more successful in producing
higher quality software that more
effectively meets customer needs at a
faster pace. Systematic Software
Engineering works at CMMI level 5 and
uses Lean Software Development as a
driver for optimizing software
processes. Early pilot projects at
Systematic showed productivity on
Scrum teams almost twice that of
traditional teams. Other projects
demonstrated a story based test driven
approach to software development
reduced defects found during final
test by 40%. We assert that Scrum and
CMMI together bring a more powerful
combination of adaptability and
predictability than either one alone
and suggest how other companies can
combine them.
HTH,
I just happen to find a blog on this exact topic: Agile CMMI blog
A starting point for a discussion on marrying Agile methods and CMMI.
It links to several articles
Agile CMMI: No Oxymoron
Agile Programming and the CMMI: Irreconcilable Differences?
It found the whole of interest so I decided to share it here.
Another recent article providing real life experience on this topic is "Mature Scrum at Systematic", co-writtent by Carsten Ruseng Jakobsen, Jeff Sutherland
In addition to the previously mentioned documents, I found another one: Agile Methods and CMMI: Compatibility or Conflict? The emphasis of this paper is on Extreme Programming (XP) and how its methods can be applied within an organization attempting to remain compliant with the CMMI framework. Although it isn't Scrum, it might be an interesting read.
Another interesting Jeff Sutherland's paper on that subject is "Scrum and CMMI Level 5: The Magic Potion for Code Warriors"
Is is said : "Results show that projects combining Agile Methods with CMMI 5 are more successful in producing higher quality software that more effectively meets customer needs at a faster pace."
If you can read french, here's a very good article on that subject : Synergies entre CMMI et les Méthodes Agiles
See short but detailed comparison at http://www.processgroup.com/pgpostmar09.pdf
On EuroStar 2009 conference Gittie Ottosen spoke about how they do agile at their company. What's impressive is that this company Systematic is creating software for air-crafts, military etc. They do it in compliance with CMMI 5, ISO 9001 and AQAP 150&2110. So I guess agile can be applied to systems with high regulations. Maybe try to look up that presentation, and try to get more info from him.